To answer all your questions at once...
 
put the EventConsumer inside a using() block, so it gets disposed.
 
use a static boolean variable in a while loop to .pop the event consumer with a timeout, if pop returns null "continue" the while loop.
 
Subscribe to shutdown, it sets the loop variable to false.
 
API command "shutdown" in the same module to set the variable to false also, so you can unload your module at will w/o crashing
 
This whole loop shoud be run on it's own thread started from the Load() method.
 
--Dave


From: Rafal Gwizdala [mailto:rafal.gwizdala@gmail.com]
To: FreeSWITCH Users Help [mailto:freeswitch-users@lists.freeswitch.org]
Sent: Fri, 20 Sep 2013 04:08:58 -0700
Subject: Re: [Freeswitch-users] mod_managed - beginner's question about an event listener module

(...)
my source code: http://pastebin.com/bKPyKSwS