2 * timed-thread.h: Implementation of timed thread joining
5 * Dick Porter (dick@ximian.com)
7 * (C) 2002 Ximian, Inc.
10 #ifndef _WAPI_TIMED_THREAD_H_
11 #define _WAPI_TIMED_THREAD_H_
16 #ifdef HAVE_SEMAPHORE_H
17 #include <semaphore.h>
20 #include "mono-mutex.h"
25 mono_mutex_t join_mutex;
26 pthread_cond_t exit_cond;
29 sem_t suspend_sem, suspended_sem;
30 guint32 (*start_routine)(gpointer arg);
31 void (*exit_routine)(guint32 exitstatus, gpointer userdata);
33 gpointer exit_userdata;
39 extern void _wapi_timed_thread_exit(guint32 exitstatus) G_GNUC_NORETURN;
40 extern int _wapi_timed_thread_create(TimedThread **threadp,
41 const pthread_attr_t *attr,
43 guint32 (*start_routine)(gpointer),
44 void (*exit_routine)(guint32, gpointer),
45 gpointer arg, gpointer exit_userdata);
46 extern int _wapi_timed_thread_attach(TimedThread **threadp,
47 void (*exit_routine)(guint32, gpointer),
48 gpointer exit_userdata);
49 extern int _wapi_timed_thread_join(TimedThread *thread,
50 struct timespec *timeout,
52 extern void _wapi_timed_thread_destroy (TimedThread *thread);
53 extern void _wapi_timed_thread_suspend (TimedThread *thread);
54 extern void _wapi_timed_thread_resume (TimedThread *thread);
56 #endif /* _WAPI_TIMED_THREAD_H_ */