On Thu, May 29, 2008 at 08:02:18PM +0200, Valery Kholodkov wrote:
> 
> For the convenience I'll answer to Nick's questions from
> SF's patch tracker in this list.
> 
> > A few initial questions:
> >  - How exactly does the test_et.c file test the edge-triggered behavior?
> > As near as I can tell, the test ought to pass whether EV_ET works or not.
> > What am I missing?
> 
> I hardly find a direct and automatic way to do it...
> 
> Try following patch for test_et.c
 [...]
> 
> You should get following now:
> 
> $ ./test_et
> read_cb: etread 1
> ^C *HANGING!!!*
> $ EVENT_NOKQUEUE=1 EVENT_NOEPOLL=1 ./test_et
> read_cb: read 1
> read_cb: read 1

Ah.  In the edge-triggered case, the handler only gets called once,
but in the level-triggered case, the handler is called so long as
read() would still succeed.

 [...]
> I must think a bit how to automate this. Please give me time.

Maybe you could use the EVLOOP_NONBLOCK flag to event_loop(), and call
it twice, and verify that in the edge-triggered case the event is only
activated on the first call, but in the level-triggered case the event
is activated on the second call too?

yours,
-- 
Nick
_______________________________________________
Libevent-users mailing list
Libevent-users@monkey.org
http://monkeymail.org/mailman/listinfo/libevent-users

Reply via email to