Re: Desperately missing a working "pselect()" or similar...

Date: Mon Oct 08 2001 - 11:32:06 EST

> > The select system call doesn't return EINTR when the signal is caught
> > prior to entry into select.
> Your friend there is siglongjmp/sigsetjmp - the same problem was true
> with old versions of alarm that did
> alarm(num)
> pause()
> on a heavily loaded box.
> Using siglongjmp cures that

Hmmm... would you say the "siglongjmp" method is better than the "self-pipe"
method for a select on both file descriptors and signals too?

As far as I can see the trade-off is (in the non-race-condition case)
between having to call read() on the pipe (to empty it after receiving the
signal) for the "self-pipe" method and having to call sigsetjump() every time
before one enters select/poll.

My assumption would be that the "self-pipe" method is cheaper... right?

Then somebody mentioned using signals to wake up processes
for frequent events wouldn't be a good idea at all - why?
And what could be a better alternative given that there are N processes,
which all need to be able to wake up any of the other N-1 processes - where N
is big enough to prohibit dedicated channels between each possible process
pair, and given that it has to be a portable way that does not impose
the risk of leaking files to a disk?


Lutz Vieweg

 Dipl. Phys. Lutz Vieweg | email:
 Innovative Software AG  | Phone/Fax: +49-69-505030 -120/-505
 Feuerbachstrasse 26-32  |
 60325 Frankfurt am Main | ^^^ PGP key available here ^^^
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

This archive was generated by hypermail 2b29 : Mon Oct 15 2001 - 21:00:18 EST