<div dir="ltr">(...)<div>and another finding, I subscribed to the &#39;SHUTDOWN&#39; event to be notified about system shutdown.</div><div>In the shutdown routine I&#39;m trying to Dispose the EventConsumer that I created during startup</div>
<div>But this dispose hangs indefinitely, preventing FS from terminating</div><div>R</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Sep 20, 2013 at 12:27 PM, Rafal Gwizdala <span dir="ltr">&lt;<a href="mailto:rafal.gwizdala@gmail.com" target="_blank">rafal.gwizdala@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">(...)<div>one more thing, my module caused an access violation during FS shutdown. Probably because my event receiver thread wasn&#39;t stopped. Is there any &#39;system shutdown&#39; hook so I could do the cleanup?</div>

<div><br></div><div><div>2013-09-20 12:25:21.485852 [CONSOLE] switch_event.c:495 Stopping dispatch thread</div><div>s</div><div>2013-09-20 12:25:21.485852 [CONSOLE] switch_event.c:294 Dispatch Thread 0 Ended.</div><div><br>

</div><div>2013-09-20 12:25:21.489853 [CONSOLE] switch_core.c:2573 Finalizing Shutdown.</div><div>2013-09-20 12:25:21.492853 [CONSOLE] switch_log.c:317 Logger Ended.</div><div>2013-09-20 12:25:21.493853 [CONSOLE] switch_core_memory.c:602 Stopping memory po</div>

<div>ol queue.</div><div><br></div><div>Unhandled Exception: System.AccessViolationException: Attempted to read or write</div><div> protected memory. This is often an indication that other memory is corrupt.</div><div>   at EventConsumer.{dtor}(EventConsumer* )</div>

<div>   at CSharp_delete_EventConsumer(Void* jarg1)</div><div>   at FreeSWITCH.Native.freeswitchPINVOKE.delete_EventConsumer(HandleRef jarg1)</div><div>   at FreeSWITCH.Native.EventConsumer.Dispose()</div><div>   at FreeSWITCH.Native.EventConsumer.Finalize()</div>

</div><div><br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Sep 20, 2013 at 12:23 PM, Rafal Gwizdala <span dir="ltr">&lt;<a href="mailto:rafal.gwizdala@gmail.com" target="_blank">rafal.gwizdala@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Thanks Dave,<div>Regarding the EventConsumer, should I actively poll for incoming events in a loop, using the &#39;pop&#39; method, or is there a way to set up a callback routine?</div>

<div><br></div><div>R</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div>On Fri, Sep 20, 2013 at 2:54 AM, Dave R. Kompel <span dir="ltr">&lt;<a href="mailto:drk@drkngs.net" target="_blank">drk@drkngs.net</a>&gt;</span> wrote:<br>

</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>
<u></u>

<div>
<div>In order for mod_managed to actually load your module you have to implment at least one of those classes. The most simple is to implmement IApiPlugin and make a shutdown API so you can unload your module.</div>
<div> </div>
<div>Also implement ILoadPluginNotify, which will add a &quot;Load&quot; method to the class. That will get called as soon as your module is loaded. From there you can start a thread to new up an EventConsumer, and process events. Make sure you return true from the load method, so the module stays loaded.</div>



<div> </div>
<div>--Dave</div><br>
<blockquote style="BORDER-LEFT:#0000ff 2px solid;PADDING-LEFT:5px;MARGIN-LEFT:5px;MARGIN-RIGHT:0px">
<hr>
<b>From:</b> Rafal Gwizdala [mailto:<a href="mailto:rafal.gwizdala@gmail.com" target="_blank">rafal.gwizdala@gmail.com</a>]<br><b>To:</b> FreeSWITCH Users Help [mailto:<a href="mailto:freeswitch-users@lists.freeswitch.org" target="_blank">freeswitch-users@lists.freeswitch.org</a>]<br>


<b>Sent:</b> Thu, 19 Sep 2013 13:10:59 -0700<br><b>Subject:</b> [Freeswitch-users] mod_managed - beginner&#39;s question about an event listener module<div><br><br>
<div>I&#39;ve looked at mod_managed documentation and can see how to write an API command or a dialplan application, but could you give me a hint how to implement an automatically starting &#39;background&#39; service that will listen to FS events? The module should start automatically at FS startup and should react to conference-related events. I&#39;ve looked through Dave Kompel&#39;s examples but didn&#39;t find such example (or didin&#39;t understand the code well enough)
<div>Thanks</div>
<div>RG</div></div></div></blockquote>


<div> </div>
<div> </div></div><br></div></div>_________________________________________________________________________<br>
Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org" target="_blank">consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br>
<br>
FreeSWITCH-powered IP PBX: The CudaTel Communication Server<br>
<a href="http://www.cudatel.com" target="_blank">http://www.cudatel.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<a href="http://wiki.freeswitch.org" target="_blank">http://wiki.freeswitch.org</a><br>
<a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><br>
<br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org" target="_blank">FreeSWITCH-users@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>