[erlang-questions] Calling multiple processes simultaneously

Martin Dimitrov mrtndimitrov@REDACTED
Mon May 23 18:15:10 CEST 2011


Thanks for the reply. We will be thinking in this direction.

Martin

On 5/23/2011 7:13 PM, Mihai Balea wrote:
> On May 23, 2011, at 12:01 PM, Martin Dimitrov wrote:
>
>> Hi, please, advise on this one,
>>
>> We have several hundred processes (gen_servers) . At one point the
>> program has to send them a message that needs to be handled before the
>> calling process can continue executing. This naturally led us to use
>> gen_server:call in loop over the processes.
>>
>> I started to wonder if there is a more efficient way of doing it since
>> the calling process doesn’t care about the return value – just needs to
>> be sure that all processes had handled the message. Can we somehow call
>> the processes simultaneously? Something similar to gen_server:multi_call
>> but for one node with different processes?
>
> You could do gen_server:cast in a loop, then wait for all servers to send a "message handled" response back to your main process.
> There's no built in way to do this, as far as I know, so you'll have to implement the cast and wait loops manually.
>
> Mihai




More information about the erlang-questions mailing list