Mercurial > emacs
comparison gc/include/private/solaris_threads.h @ 51488:5de98dce4bd1
*** empty log message ***
author | Dave Love <fx@gnu.org> |
---|---|
date | Thu, 05 Jun 2003 17:49:22 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
51487:01d68b199093 | 51488:5de98dce4bd1 |
---|---|
1 #ifdef GC_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 SUSPNDED 8 /* Currently suspended. */ | |
20 /* SUSPENDED is used insystem header. */ | |
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 | |
34 # endif /* GC_SOLARIS_THREADS */ | |
35 |