<div dir="ltr">It seems to me like gen_event is implemented as message proxy. We send a new event, and gen_event calls all the handlers. Handlers sends multiplies messages to actual receivers. So what gen_event actually does is to multiply messages in another process context so actual event generator process does not spend time with generating messages.<div style>

<br></div><div style>According to this perspective. gen_event code should be as little as possible (no calculation, only message sending code.).</div><div style>Does that sound about right? </div></div><div class="gmail_extra">

<br><br><div class="gmail_quote">On Tue, Mar 5, 2013 at 10:55 PM, Dmitry Kolesnikov <span dir="ltr"><<a href="mailto:dmkolesnikov@gmail.com" target="_blank">dmkolesnikov@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Yep, this is another headache…<br>
You have to write a gen_server that acts as "supervisor" for that event_handler...<br>
<span class="HOEnZb"><font color="#888888"><br>
- Dmitry<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Mar 5, 2013, at 10:37 PM, Tim Watson <<a href="mailto:watson.timothy@gmail.com">watson.timothy@gmail.com</a>> wrote:<br>
<br>
> On 5 Mar 2013, at 20:26, Dmitry Kolesnikov wrote:<br>
>> If you implement PubSub via gen_event then all you subscriber handlers are executed within dispatcher process. This is not good. you would end-up implementing an gen_event handler as a proxy to your subscriber. Why to bother if ten_server can be used directly.<br>


><br>
> Not to mention the fact that if a gen_event handler crashes, it is silently and unceremoniously removed. See add_sup_handler for a way around that old chestnut. :)<br>
><br>
> Cheers,<br>
> Tim<br>
<br>
</div></div></blockquote></div><br></div>