gen_event and multiple handler ``instances''

Dustin Sallings dustin@REDACTED
Mon May 3 23:11:46 CEST 2004


	I'm making my away around the OTP modules (it seems that I need just 
about every one of them for a simple application I'm writing) and I've 
got a question regarding gen_event.

	It seems that gen_event doesn't want you to have multiple handlers 
from the same module registered.  I was hoping for something more like 
NSNotificationCenter (if you're familiar with Objective C) where I 
could register something more like a process.  Does something exist 
that is more suited to my needs?

	Essentially, my app consists of a multicast listener that watches for 
environmental data updates on my network and transforms those into 
events.  I have another process that is a TCP listener that accepts 
connections and sends the updates across it, essentially transforming 
the local multicast to TCP unicast.  I thought I could get away with 
the following:

init([Socket|Args]) ->
     error_logger:info_msg("Starting event handler with:  ~p~n", 
[Socket]),
     {ok, Socket}.


	This does seem to do what I want, but it's unclear to me how I'd go 
about deleting the handler when the socket disconnects:

3> gen_event:which_handlers(temp_listener_events).
[lemp_handler,lemp_handler]

	Currently, I just let the handler crash and get a giant error message, 
but it seems like there would be a better way.  Any ideas?

-- 
Dustin Sallings




More information about the erlang-questions mailing list