Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
io_wait(3)		   Library Functions Manual		    io_wait(3)

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 time-
       out, and	the program is interested in reading or	writing	that  descrip-
       tor, io_wait will return	promptly.

       Under  some circumstances, io_wait will return even though no interest-
       ing 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 po-
       tential race condition to be aware of. Some event  notification	mecha-
       nisms  (for example, kqueue on BSD and epoll on Linux) will return mul-
       tiple 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  re-
       ceive 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)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=libowfat_io_wait&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help