Annotation of OpenXM_contrib2/asir2000/gc/include/private/solaris_threads.h, Revision 1.1
1.1 ! noro 1: #ifdef SOLARIS_THREADS
! 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. */
! 19: # define SUSPENDED 8 /* Currently suspended. */
! 20: ptr_t stack;
! 21: size_t stack_size;
! 22: cond_t join_cv;
! 23: void * status;
! 24: } * GC_thread;
! 25: extern GC_thread GC_new_thread(thread_t id);
! 26:
! 27: extern GC_bool GC_thr_initialized;
! 28: extern volatile GC_thread GC_threads[];
! 29: extern size_t GC_min_stack_sz;
! 30: extern size_t GC_page_sz;
! 31: extern void GC_thr_init(void);
! 32:
! 33: # endif /* SOLARIS_THREADS */
! 34:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>