Subject: Re: pipes from FreeBSD and the NetBSD async I/O bug
To: thorpej@zembu.com, Emmanuel Dreyfus <p99dreyf@criens.u-psud.fr>
From: Christos Zoulas <christos@zoulas.com>
List: tech-kern
Date: 04/30/2001 20:55:08
On Apr 30,  4:23pm, thorpej@zembu.com (Jason R Thorpe) wrote:
-- Subject: Re: pipes from FreeBSD and the NetBSD async I/O bug

| The problem is that SIGIO is not specified by POSIX or SUSv2.  Therefore,
| there is no standardized behavior to follow.  Considering that SIGIO
| originated in BSD, it seems as if the behavior we currently have is
| "correct", in that it is the behavior of the original sockets implementation.
| 
|  > Another note: Digital UNIX 4.0 fails on the pipe test. I've found
|  > another OS that does pipe async I/O the same way we do it.
| 
| Right, that's because Digital UNIX (which, BTW, is largely "Mach, plus
| a bunch of 4.4BSD, plus some SVR4 stuff") uses sockets to implement pipes.
| 

Code written correctly can handle both cases. Making assumptions about
when SIGIO is going to be sent will just lead to trouble. Typically
SIGIO is used in conjuction with select/poll to discover if the event
is a read or write availability event. I really don't understand why
the jdk is written in a way that fails when it receives extra SIGIO's.

christos