source: trunk/gcc/boehm-gc/include/private/solaris_threads.h

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.