Mirror of :pserver:cvs@cvs.fefe.de:/cvs libowfat https://www.fefe.de/libowfat/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

30 lines
1015 B

.TH iom_init 3
iom_init \- create new I/O multiplexer
.B #include <libowfat/io.h>
int \fBiom_init\fP(iomux_t* c);
iom_init initializes an I/O multiplexer.
An I/O multiplexer is a context that can be used to do I/O multiplexing
with support for multiple threads. Add events to a multiplexer using
\fIiom_add\fR, and then get the next available event with
\fIiom_wait\fR. If you are done and want to signal all the threads
something, set a volatile global variable to tell the threads to stop
and then fall \fIiom_abort\fR to tell all pending iom_wait operations in
all threads to return immediately.
After \fIiom_init\fR is done, \fIiom_add\fR and \fIiom_wait\fR can be
called from different threads on the same context, and they will
synchronize internally.
You may have to add \fI-lpthread\fR to the command line in the linking
iom_init returns 0 on success and -1 on error, setting errno.
iom_add, iom_wait, iom_abort