Last change
on this file was 2, checked in by bird, 22 years ago |
Initial revision
|
-
Property cvs2svn:cvs-rev
set to
1.1
-
Property svn:eol-style
set to
native
-
Property svn:executable
set to
*
|
File size:
1.3 KB
|
Line | |
---|
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 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 /* GC_SOLARIS_THREADS */
|
---|
34 |
|
---|
Note:
See
TracBrowser
for help on using the repository browser.