[erlang-questions] Sending messages to gen_event manager

Ben Hood <>
Sat Jul 21 15:57:55 CEST 2007


Hi,

I'm trying to use the gen_event behaviour to manage some event driven
logic and the process seems to be pretty straight forward.

1. As a alternative to the notify/2 call, if if store the Pid of the
event manager when it is started, i.e.

{ok, Pid } = gen_event:start_link( {local, man} ).

can I just implement a handle_info/2 callback on my handler and then I
can send it events as such:

Pid ! { my_message }

Are these approaches equivalent apart from the fact that one is a
by-name invocation and the other is a by-pid invocation?

Does the by-pid invocation have any implications on the state,
lifecycle or supervision tree of the handler?

2. Say I have multiple event handlers that need to respond differently
to different types of events, it is a sounder design to add multiple
callbacks to one event manager and then pattern match on the
handle_event/2 callback, or does it make more sense to just create a
new event manager for each event type?

Naively I would go for the latter option, but this may create lots of
event manager processes. Is this problematic?

Thx,

Ben



More information about the erlang-questions mailing list