[erlang-questions] Shell pid changes after an error occurred

Jakub Groncki <>
Sun Apr 9 21:46:42 CEST 2017


Hi,

My first message here so it may be very n00b but well, I just started to
pick up some Erlang a couple of days ago (I'm halfway through "Introducing
Erlang" + I find this book quite enjoyable). So there's this one thing
that's been bugging me ever since I learnt about processes, pids and the
like - the shell pid seems to change after an error caused by malformed
code or after a user exception is thrown. See this terminal session snippet:

Erlang/OTP 19 [erts-8.3] [source] [64-bit] [smp:2:2] [async-threads:10]
[hipe] [kernel-poll:false]

Eshell V8.3  (abort with ^G)
1> self().
<0.58.0>
2> error(sadface).
** exception error: sadface
3> self().
<0.61.0>

So here you can see self() yields different values. Does anybody know why
it happens the way it happens?

PS Of course I'm not implying there's something wrong with this kind of
behavior but still it's really interesting.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20170409/6b431ae7/attachment.html>


More information about the erlang-questions mailing list