oracular (3) io_wait.3.gz

Provided by: libowfat-dev_0.32-5_amd64 bug

NAME

       io_wait - wait for events

SYNTAX

       #include <libowfat/io.h>

       void io_wait();

DESCRIPTION

       io_wait()  checks the descriptors that the program is interested in to see whether any of them are ready.
       If none of them are ready, io_wait() tries to pause until one of them is ready, so that it does not  take
       time away from other programs running on the same computer.

       io_wait pays attention to timeouts: if a descriptor reaches its timeout, and the program is interested in
       reading or writing that descriptor, io_wait will return promptly.

       Under some circumstances, io_wait will return even though no interesting descriptors are  ready.  Do  not
       assume that a descriptor is ready merely because io_wait has returned.

       io_wait is not interrupted by the delivery of a signal. Programs that expect interruption are unreliable:
       they will block if the same signal is delivered a moment  before  io_wait.  The  correct  way  to  handle
       signals is with the self-pipe trick.

NOTE

       Depending  on  the underlying operating system primitive, there is a potential race condition to be aware
       of. Some event notification mechanisms (for example, kqueue on  BSD  and  epoll  on  Linux)  will  return
       multiple events. If your application operates on pairs of file descriptors (a proxy server maybe), and an
       error on one descriptor can lead to closing the other descriptor, then an outstanding event on the  other
       descriptor  can  still be queued for delivery to you. Be prepared to receive events for a descriptor that
       has already been closed.

SEE ALSO

       io_waituntil(3), io_check(3), io_wantread(3), io_wantwrite(3), io_fd(3)

                                                                                                      io_wait(3)