Annotation of OpenXM_contrib2/asir2000/gc/include/private/solaris_threads.h, Revision 1.3
1.3 ! noro 1: #ifdef GC_SOLARIS_THREADS
1.1 noro 2:
3: /* The set of all known threads. We intercept thread creation and */
4: /* joins. We never actually create detached threads. We allocate all */
5: /* new thread stacks ourselves. These allow us to maintain this */
6: /* data structure. */
7: /* Protected by GC_thr_lock. */
8: /* Some of this should be declared volatile, but that's incosnsistent */
9: /* with some library routine declarations. In particular, the */
10: /* definition of cond_t doesn't mention volatile! */
11: typedef struct GC_Thread_Rep {
12: struct GC_Thread_Rep * next;
13: thread_t id;
14: word flags;
15: # define FINISHED 1 /* Thread has exited. */
16: # define DETACHED 2 /* Thread is intended to be detached. */
17: # define CLIENT_OWNS_STACK 4
18: /* Stack was supplied by client. */
1.3 ! noro 19: # define SUSPNDED 8 /* Currently suspended. */
! 20: /* SUSPENDED is used insystem header. */
1.1 noro 21: ptr_t stack;
22: size_t stack_size;
23: cond_t join_cv;
24: void * status;
25: } * GC_thread;
26: extern GC_thread GC_new_thread(thread_t id);
27:
28: extern GC_bool GC_thr_initialized;
29: extern volatile GC_thread GC_threads[];
30: extern size_t GC_min_stack_sz;
31: extern size_t GC_page_sz;
32: extern void GC_thr_init(void);
33:
1.3 ! noro 34: # endif /* GC_SOLARIS_THREADS */
1.1 noro 35:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>