NAME¶
iv_thread_create, iv_thread_set_debug_state - ivykis thread convenience
functions
SYNOPSIS¶
#include <iv_thread.h>
int iv_thread_create(char *name, void
(*start_routine)(void *), void *arg);
void iv_thread_set_debug_state(int state);
DESCRIPTION¶
iv_thread_create is a wrapper around
pthread_create(3) which will
maintain an ivykis main loop reference in the calling thread (which must be an
ivykis(3) thread, i.e. have had
iv_init(3) called in it) for as
long as the created thread is alive.
Maintaining a reference on the calling thread's ivykis event loop makes sure
that the calling thread will not return from its ivykis main loop before the
created thread exits, as that could cause cleanup still happening in the
created thread to be interrupted when the calling thread subsequently calls
exit(3).
The created thread need not be an ivykis thread.
Enabling debugging by calling
iv_thread_set_debug with a nonzero argument
will print a debug message to standard error whenever a thread is created via
iv_thread_create, whenever a thread so created terminates normally by
returning from its
start_routine, self-terminates by calling
pthread_exit(3), or is successfully canceled by
pthread_cancel(3), and whenever destruction of such a thread is
signaled back to the calling thread.
For inter-thread signaling,
iv_thread uses
iv_event(3).
SEE ALSO¶
ivykis(3),
iv_event(3),
exit(3),
pthread_cancel(3),
pthread_create(3),
pthread_exit(3)