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

FreeBSD Manual Pages

  
 
  

home | help
AIO_WAITCOMPLETE(2)	       System Calls Manual	     AIO_WAITCOMPLETE(2)

NAME
     aio_waitcomplete -- wait for the next completion of an aio request

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <aio.h>

     ssize_t
     aio_waitcomplete(struct aiocb **iocbp, struct timespec *timeout);

DESCRIPTION
     The  aio_waitcomplete() system call waits for completion of an asynchronous
     I/O request.  Upon completion, aio_waitcomplete() returns the result of the
     function and sets iocbp to point to the structure associated with the orig-
     inal request.  If an asynchronous I/O request is completed before aio_wait-
     complete() is called, it returns immediately with the completed request.

     If timeout is a non-NULL pointer, it specifies a maximum interval	to  wait
     for  a asynchronous I/O request to complete.  If timeout is a NULL pointer,
     aio_waitcomplete() waits indefinitely.  To effect a poll, the timeout argu-
     ment should be non-NULL, pointing to a zero-valued timeval structure.

     The aio_waitcomplete() system call also  serves  the  function  of  aio_re-
     turn(),  thus  aio_return()  should not be called for the control block re-
     turned in iocbp.

RETURN VALUES
     If an asynchronous I/O request has completed, iocbp is set to point to  the
     control  block passed with the original request, and the status is returned
     as described in read(2), write(2), or fsync(2).  On  failure,  aio_waitcom-
     plete() returns -1, sets iocbp to NULL and sets errno to indicate the error
     condition.

ERRORS
     The aio_waitcomplete() system call fails if:

     [EAGAIN]		The   process	has   not   yet   called  aio_read()  or
			aio_write().

     [EINTR]		A signal was delivered before the  timeout  expired  and
			before any asynchronous I/O requests completed.

     [EINVAL]		The specified time limit is invalid.

     [EWOULDBLOCK]

     [EINPROGRESS]	The specified time limit expired before any asynchronous
			I/O requests completed.

SEE ALSO
     aio_cancel(2),  aio_error(2),  aio_read(2),  aio_return(2), aio_suspend(2),
     aio_write(2), fsync(2), read(2), write(2), aio(4)

STANDARDS
     The aio_waitcomplete() system call is a FreeBSD-specific extension.

HISTORY
     The aio_waitcomplete() system call first appeared in FreeBSD 4.0.

AUTHORS
     The aio_waitcomplete() system call and this manual  page  were  written  by
     Christopher M Sedore <cmsedore@maxwell.syr.edu>.

FreeBSD ports 15.quarterly	 March 27, 2025 	     AIO_WAITCOMPLETE(2)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=aio_waitcomplete&sektion=2&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help