I meant that my code wasn't the cleanest, not yours.

Can you point to the line-numbers that do the O_ASYNC check?  From memory, I 
think my test libevent app used stdin as an fd and libevent with rtsig didn't 
respond, though it did with the other selectors.

I also don't see how you choose whether to block on the call to poll() or the 
call to sigtimedwait().  Blocking on just one or the other means you can stall. 
 In my version I setup a real signal handler so I could unblock the rt-signal 
while in poll(), preventing the stall.

Your code ( the original rtsig.c in libevent ) was my inspiration and 
starting-point.  You should look through my version, if for no other reason 
than to point out code I lifted from you without giving you credit.
 
On Sunday, February 26, 2006, at 03:08PM, Taral <[EMAIL PROTECTED]> wrote:

>On 2/26/06, Mathew Mills <[EMAIL PROTECTED]> wrote:
>> Actually, there are some significant problems with the rtsig implementation. 
>>  For example, it doesn't handle pipes or tty's and can miss several events.
>>
>> Attached is a version of rtsig.c that is mostly a rewrite.  The code isn't 
>> that clean, but it has been working flawlessly for me in many high-volume 
>> applications for over a year now.
>
>O.o News to me! I wrote the original implementation. It has code to
>detect fds that don't support O_ASYNC and include them in the pollset
>permanently. Under what scenarios does it miss events?
>
>As you said, the code isn't that clean, so I'd prefer to fix up the
>existing implementation.
>
>--
>Taral <[EMAIL PROTECTED]>
>"Computer science is no more about computers than astronomy is about
>telescopes."
>    -- Edsger Dijkstra
>
>
_______________________________________________
Libevent-users mailing list
[email protected]
http://monkey.org/mailman/listinfo/libevent-users

Reply via email to