Re: is Event the best event loop module?

[email protected] (Raul Dias)
Newsgroups perl.loop
Message-ID <[email protected]>
[...]
>> the way to handle that properly is to check for any pending signals
>> before you enter the select call (while blocking any from coming in) and
>> then checking after the select returns. this can only be done correctly
>> in C.
>
>There's no way in perl or C that I know of to atomically set a signal
>mask and enter a select call.  I've seen rumors of a pselect library
>call available on some systems that can do this.  A sigprocmask call
>followed by a select call has a race condition, because a signal can
>come in between the two statements.  How do you solve this in C?  I've
>seen a klugey solution that requires a setjmp/longjmp.

A long time ago in a galaxy far away I got the same problem with 
the Linux kernel 2.0.x.

I was writting a driver for A/D board I have build and I had to make the
driver sleep before the interrupt happened after I set it up for making a read.

Unfortunally that was too fast and the interrupt happened almost always 
before get to sleep.

The only way I found to do it is to edit the queue and set the driver as 
"sleeping" before it really was sleeping.  So after puting it to sleep I would get
the call to process the interrupt imediatly.

Regards,

Raul Dias
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.