[erlang-questions] Pratical solutions for selective send (was: gen_event handler question)
Wed May 13 19:49:33 CEST 2009
> Ahoy! :)
> On Wed, Apr 29, 2009 at 9:33 AM, Camille Troillard <>
>> On Wed, Apr 29, 2009 at 10:17 AM, Robert Raschke <>
>>> > I would like to know if it is possible to write an event handler that
>>> > would
>>> > receive only certain notifications based on a simple criteria.
>>> You could use a catch all like handle_event(_, State)-> at the end of
>>> your handlers? Not sure if that's the recommended way though.
>> Yes, I thought about this, hehe.
>> But then all the handlers would receive notifications and should decide
>> themselves wether or not they should process the message, which is not good.
>> It looks like a design issue on my side, oh well … maybe this is not the
>> "erlang" way to do it …
> After reading this I'm wondering... what's the current "erlang way" of doing
> selective sends?
> Where by "selective send" I mean:
> - a client process sends a "message filter" to a server process;
> - when an event occurs the server checks the client's "message filter" to
> determine if a notification should be sent.
I don't understand what's wrong with gen_event in this case? An event
handler is not its own process. It's just a callback module. There is
only one process and that's the event manager. Using a catch-all
handle_event/2 should be an extremely cheap way to disregard events
you're not interested in. Not that I have run any benchmarks.
More information about the erlang-questions