DragonFly On-Line Manual Pages
iv_thread(3) ivykis programmer's manual iv_thread(3)
NAME
iv_thread_create, iv_thread_set_debug_state - ivykis thread convenience
functions
SYNOPSIS
#include <iv_thread.h>
int iv_thread_create(const 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)
ivykis 2010-09-13 iv_thread(3)