Hi, I'm sorry, the previous message slipped out w/o subj. Attached patch is an implementation of "signal-per-fd" enhancement to kernel RT signal mechanism, AFAIK first proposed by A. Chandra and D. Mosberger : http://www.hpl.hp.com/techreports/2000/HPL-2000-174.html which should dramatically increase linux based network servers scalability. Patch is made against 2.4.4 tree. This patch allows to set signal-per-fd mode per each file descriptor by introducing new fcntls "F_SETAUXFL" and "F_GETAUXFL" with one possible argument "O_ONESIGFD" to F_SETAUXFL defined. When set, no additional siginfo will be queued for an RT signal, generated by event on file descriptor, while there is already one queued, though event report field in already queued struct siginfo - "si_band" is updated. I'd also like to hear an opinion on the signal filtering capability. I.e, it's relatively easy to filter signals upon an interest mask, supplied by the same F_SETAUXFL in the form of POLL_... This will bring functionality of RT signals event notification on the level with 'select' or 'poll' one, while more efficient and scalable. If there's an interest in such a feature, I'd be eager to publish a patch. Thanks, Vitaly.
Attachment:
one-sig-perfd-2.4.4.patch.gz
Description: GNU Zip compressed data