Updates from 0.2.1 into 0.2.1-inu-1.5
This commit is contained in:
34
gc/include/private/solaris_threads.h
Normal file
34
gc/include/private/solaris_threads.h
Normal file
@@ -0,0 +1,34 @@
|
||||
#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 */
|
||||
|
Reference in New Issue
Block a user