You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
1.3 KiB

.TH iom_wait 3
iom_wait \- wait for event from I/O multiplexer
.B #include <libowfat/io.h>
int \fBiom_wait\fP(iomux_t* c,
int64* fd, unsigned int* events,
unsigned long timeout);
iom_wait will wait for events registered to the I/O multiplexer with
\fIiom_add\fR. It will wait \fItimeout\fR milliseconds.
If during that time any of the registered events occur, \fIiom_wait\fR
will set \fIfd\fR to the file descriptor the event happened on, and
\fIevents\fR to the sum of IOM_READ, IOM_WRITE and IOM_ERROR, depending
on what event actually happened, and return 1.
If nothing happens during that time, it will return 0 and leave \fIfd\fR
and \fIevents\fR alone.
Note that the event registration is removed from the iomux_t context if
it occurs. You will have to call \fIiom_wait\fR again after you handled
the event, if you are still interested in it.
Closing a file descriptor with registered events will discard the event
You may have to add \fI-lpthread\fR to the command line in the linking
iom_wait returns 1 on success, 0 if there was a timeout, and -1 on
error, setting errno. If \fIiom_abort\fR was called on the I/O
multiplexer context, it will return -2.
iom_init, iom_add, iom_abort