[erlang-questions] Attempting to create a plethora of processes

Dave Vandervies <>
Sun Jul 12 06:40:43 CEST 2009


Somebody claiming to be Yves S. Garret wrote:
> Hi all,
> 
>    I'm just trying to get a better unerstanding of IPC in Erlang and I
> stumbled on this little problem.  The problem arises when I get to the
> spawn method.  My present understanding is that the spawn method will
> create a different process with the passed in method and then
> immediately return.
[...]
>         However,
> what throws me for a loop is the fact that the process that called the
> spawn method seems to be unresponsive.  This was not my intention and
> don't understand why this would happen.  What have I misunderstood?
> spawn creates a new process, so in theory, it should just exit out of
> that method and proceed with the parent...

The problem isn't with spawn itself, it's with the argument you're
giving it.

You have:
>   Pid = spawn(simulate()),
which calls simulate, and then calls spawn with whatever simulate returns
(except you're not getting that far, since simulate blocks in a receive.)

Try saying:
    Pid = spawn(fun simulate/0),
instead; this will give spawn the function simulate/0 as an argument,
and spawn should kick off a new process and return as you expect.


dave

-- 
Dave Vandervies


Plan your future!  Make God laugh!


More information about the erlang-questions mailing list