[erlang-questions] concurrency question

Mark Bucciarelli <>
Fri Sep 30 03:25:07 CEST 2016


I have a program that does the following:

- start gen_event, naming it "dispatcher"
- spawn a process
- send 60 message to process then a stop message
- exit

The spawned process outputs a line to stdout for
each message recieved, and after 40 or so messages,
the spawned process calls gen_event:notify(dispatcher, ...).

This has the obvious bug that when the event is fired, the
dispatcher is long gone.

When I run this from the command line like this:

    erl -run simulation -run init stop

the spawned process does not print any error message to
the console when it crashes.

But when I run it from inside the interpreter,

    > simulation:start().

I see:

** exception error: no such process or port

(which is gen_event saying hey, I can't notify the Pid with that name

because it's gone.)


Why don't I get that error output when I run from the console?


Thanks!


Mark
-- 
Blogging at markbucciarelli.com
Tweeting @mbucc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20160929/a7a7b9e5/attachment.html>


More information about the erlang-questions mailing list