Post by Sean.L.. » Sun, 04 Nov 1990 00:12:32

Under BSD and all the BSDalikes we have at our disposal, the following
scheme works:

        s = socket(...);
        signal(SIGIO, handler);
        fcntl(s, F_SETOWN, getpid());


        c = accept(s, ...);


Well, you get the idea. The point is, the code works just fine under
Mach/BSD, Ultrix, other BSDish systems; a SIGIO interrupt is delivered
whenever someone does a connect() to s. However, on the ARDENT under
whatever *ed SysV + BSD sugar thing they run there, no interrupt
is delivered when a connect() is done -- nothing happens at all, as a
matter of fact. SIGIO does seem to work for actual I/O, e.g. if you set
it up in an analagous way and use SIGIO to be notified of write()'s on
the socket, it does work. This also works in BSD, of course.

So, my question is: can you use SIGIO under ARDENT's (or anyone else's)
SysV to be notified of an attempt to connect to a socket? The point is
to have this piece of code be portable to a number of platforms, and
also be operable in a heterogenous environment, e.g. a purely SysV
solution to this is no good. I thought that a more generic way of doing
this would be to fork a process that sits on the socket in accept(),
accepts connections and shuffles I/O to its parent (maybe using SIGIO in
the parent to be notified of I/O, since this seems to work).

Thanks in advance,

               don't believe the hype


1. SIGIO: Is it possible to use SIGIO for named pipes?

I am trying to use asynchronous I/O in an application.  I am reading
from a named pipe.  I used sigaction to catch the signal. Used fcntl to
own "fd" and used fcntl to set O_ASYNIO.  But  I don't get the signal.
Any suggestions?

Thank you.
Prabhakara Vinta

2. finding out the file system which a directory belongs

3. Matrox Mystique ands X.

4. chmod --> r-sr-sr-x ???

5. Titan Supercomputer-Ardent Computer Corp.

6. Apache 1.3.9 Ignoring my .htaccess Files

7. Smail 3.1.21 on Stardent 3000 (aka Ardent Titan-III)

8. Kppp hassle

9. Ardent Universe security problem (?)

10. Accessing an Ardent database from Oracle.

11. Sending SIGIO to a socket

12. fix for sigio delivery

13. sigio/sigurg cleanup for 2.5.32 (fwd)