![]() ![]() | ![]() |
File: [local] / OpenXM / src / kan96xx / gc-4.14 / Attic / solaris_threads.h (download)
Revision 1.1.1.1 (vendor branch), Fri Oct 8 02:12:03 1999 UTC (24 years, 10 months ago) by maekawa
o import OpenXM sources |
#ifdef SOLARIS_THREADS /* The set of all known threads. We intercept thread creation and */ /* joins. We never actually create detached threads. We allocate all */ /* new thread stacks ourselves. These allow us to maintain this */ /* data structure. */ /* Protected by GC_thr_lock. */ /* Some of this should be declared volatile, but that's incosnsistent */ /* with some library routine declarations. In particular, the */ /* definition of cond_t doesn't mention volatile! */ typedef struct GC_Thread_Rep { struct GC_Thread_Rep * next; thread_t id; word flags; # define FINISHED 1 /* Thread has exited. */ # define DETACHED 2 /* Thread is intended to be detached. */ # define CLIENT_OWNS_STACK 4 /* Stack was supplied by client. */ # define SUSPENDED 8 /* Currently suspended. */ ptr_t stack; size_t stack_size; cond_t join_cv; void * status; } * GC_thread; extern GC_thread GC_new_thread(thread_t id); extern GC_bool GC_thr_initialized; extern volatile GC_thread GC_threads[]; extern size_t GC_min_stack_sz; extern size_t GC_page_sz; extern void GC_thr_init(void); # endif /* SOLARIS_THREADS */