sends don't block, right?
Chris Pressey
cpressey@REDACTED
Wed Feb 25 05:19:09 CET 2004
On Tue, 24 Feb 2004 22:48:21 -0500
Shawn Pearce <spearce@REDACTED> wrote:
> Ok, colo(u)r me stupid now (borrowed phrase, sorry!):
>
> ! doesn't block, right?
Right.
> If I do something foolish like this:
>
> never_end() ->
> Pid = spawn(fun() -> receive foo -> ok end),
> do_loop(Pid).
>
> do_loop(Pid) ->
> Pid ! bar,
> io:format("still going, just like the bunny~n", []),
> do_loop(Pid).
>
> will the parent ever stop because the child's message buffer is full?
No. It'll crash.
By which I mean the Erlang *node* will crash, not just the process.
> Basically, I'm asking if Erlang will let the parent in this case run
> the VM out of memory before making the parent freeze.
Yes, exactly that.
At least, that was my experience last time I tried anything like this.
Perhaps try it yourself and see?
-Chris
More information about the erlang-questions
mailing list