[BACK]Return to solaris_threads.h CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / gc / include / private

Annotation of OpenXM_contrib2/asir2000/gc/include/private/solaris_threads.h, Revision 1.3

1.3     ! noro        1: #ifdef GC_SOLARIS_THREADS
1.1       noro        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.        */
1.3     ! noro       19: #      define SUSPNDED 8       /* Currently suspended.                 */
        !            20:                               /* SUSPENDED is used insystem header.    */
1.1       noro       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:
1.3     ! noro       34: # endif /* GC_SOLARIS_THREADS */
1.1       noro       35:

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