iom_wait(3)

NAME
iom_wait - wait for event from I/O multiplexer

SYNTAX
#include <libowfat/io.h>

int iom_wait(iomux_t* c,
                   int64* fd, unsigned int* events,
           unsigned long timeout);

DESCRIPTION
iom_wait will wait for events registered to the I/O multiplexer with iom_add. It will wait timeout milliseconds.

If during that time any of the registered events occur, iom_wait will set fd to the file descriptor the event happened on, and events 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 fd and events alone.

Note that the event registration is removed from the iomux_t context if it occurs. You will have to call iom_wait again after you handled the event, if you are still interested in it.

Closing a file descriptor with registered events will discard the event registration.

LINKING
You may have to add -lpthread to the command line in the linking step.

RETURN VALUE
iom_wait returns 1 on success, 0 if there was a timeout, and -1 on error, setting errno. If iom_abort was called on the I/O multiplexer context, it will return -2.

SEE ALSO
iom_init, iom_add, iom_abort