[erlang-questions] process - crash
Davide Marquês
nesrait@REDACTED
Tue Apr 7 17:17:57 CEST 2009
Hi!
When a process spawns (without link) another process, what happens if the
> spawned process crashes, mainly in a communication environment ?
> Does the memory release ? what is the impact on the first process ? on the
> sockets ?
>
Each erlang process is independent and if you don't setup a link/monitor it
will crash without any other process getting notified about it.
But that's no fun! :)
You can checkout out these docs to see how a bunch of processes linked
together behave/can be setup to behave:
- http://erlang.org/doc/getting_started/robustness.html#4.2 (in
http://erlang.org/doc/getting_started/part_frame.html)
- http://www.erlang.org/course/error_handling.html
- http://erlang.org/doc/reference_manual/processes.html#10.7 (in
http://erlang.org/doc/reference_manual/part_frame.html)
- http://www.erlang.org/doc/man/erlang.html
Regarding the "in a communication environment" part... if you are sending a
message to a process and it crashes you won't get any "sending failed"
notification.
If you really want to make sure that the message was received *and
processed* then you have to notify the caller after finishing processing the
message.
I believe/read somewhere that the garbage collection is done on a
per-process basis. When a process crashes the VM will "tidy things up". :)
> (Documentation reference welcome !)
>
Joe's book will get you a long way. :)
/Davide :)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20090407/3e74e5ff/attachment.htm>
More information about the erlang-questions
mailing list