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 guint32 (*start_routine)(gpointer arg);
30 void (*exit_routine)(guint32 exitstatus, gpointer userdata);
32 gpointer exit_userdata;
37 extern void _wapi_timed_thread_exit(guint32 exitstatus) G_GNUC_NORETURN;
38 extern int _wapi_timed_thread_create(TimedThread **threadp,
39 const pthread_attr_t *attr,
41 guint32 (*start_routine)(gpointer),
42 void (*exit_routine)(guint32, gpointer),
43 gpointer arg, gpointer exit_userdata);
44 extern int _wapi_timed_thread_attach(TimedThread **threadp,
45 void (*exit_routine)(guint32, gpointer),
46 gpointer exit_userdata);
47 extern int _wapi_timed_thread_join(TimedThread *thread,
48 struct timespec *timeout,
50 extern void _wapi_timed_thread_destroy (TimedThread *thread);
51 extern void _wapi_timed_thread_suspend (TimedThread *thread);
52 extern void _wapi_timed_thread_resume (TimedThread *thread);
54 #endif /* _WAPI_TIMED_THREAD_H_ */