On Wed, 12 Jul 2000, Uncle George wrote:

> there does not seem ( from my cursory look ) to be any code in fs/pipe.c
> that handles the dispatching of SIGIO's.  Looking for SIGIO's on other
> device drivers leads me to believe that the SIGIO signal is not implimented
> for all drivers. Could also be that SIGIO is centrally dispatched - and
> havent found it yet.
> Any comments from the linux-kernel folks ?
> /gat
> anyway i'd still like to see that small sample that u say fails this.


This came up about a year ago. From what I remember, it was determined
that pipes are not supposed to generate signals when data are available
because you can't even write to a pipe unless you have a reader already
reading. Basically, the pipe will block on a write until somebody
reads it and a reader will block until somebody writes. Attempts to
set the pipes to non-blocking violates some spec (perhaps POSIX) so
the result is undefined.

This was what was explained to me when I reported what I thought was a
bug. You need to use UNIX Sockets for interprocess communication
instead of pipes if you want signals for synchronization. Sockets
produce the behavior you expect.


Cheers,
Dick Johnson

Penguin : Linux version 2.2.15 on an i686 machine (797.90 BogoMips).

"Memory is like gasoline. You use it up when you are running. Of
course you get it all back when you reboot..."; Actual explanation
obtained from the Micro$oft help desk.




_______________________________________________
Redhat-devel-list mailing list
[EMAIL PROTECTED]
https://listman.redhat.com/mailman/listinfo/redhat-devel-list

Reply via email to