[BACK]Return to solaris_threads.h CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gc

Annotation of OpenXM_contrib/gc/solaris_threads.h, Revision 1.1.1.1

1.1       maekawa     1: #ifdef 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 /* SOLARIS_THREADS */
                     34:

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>