Dear Erlangers,<div><br></div><div><br></div><div>When I start two erl shells on the same machine, I got one shell with pid <0.30.0> and the other one with <0.32.0>, and if I send a message on the first shell:" list_to_pid("<0.32.0>") ! hello.", the second shell got nothing by calling "flush()" on it.</div>
<div><br></div><div>However, we can still send messages between shells on the same machine by starting them as nodes:</div><div>>erl -sname bar -setcookie barco >erl -sname foo -setcookie barco</div>
<div><div>Eshell V5.8.4 (abort with ^G) Eshell V5.8.4 (abort with ^G)</div></div><div><div>(bar@youjie-nb)5> register(bar,self()). (foo@youjie-nb)1> {'bar@youjie-nb',bar} ! "hello bar!".</div>
<div>true "hello bar!"</div><div>(bar@youjie-nb)6> flush().</div><div><div>Shell got "hello bar!"</div><div>
ok</div></div></div><div><br></div><div>I hope to know the difference between the twos ways of starting erlang shell. Can two shells (not as nodes) send each other messages? Will the two erlang VMs (I assume one VM for one shell) share the same schedulers/run-queues on every core or each one has its own schedulers/run-queues on every core? and what about the VMs for nodes?</div>
<div><br></div><div>Any insight would be appreciated.</div><div><br></div><div><br></div><div>Best regards,</div><div>Barco</div>