int iv_thread_create(char *name, void (*start_routine)(void *), void *arg);
void iv_thread_set_debug_state(int state);
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).