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

File: [local] / OpenXM_contrib / gc / Attic / solaris_threads.h (download)

Revision 1.1.1.1 (vendor branch), Sat Nov 27 10:58:33 1999 UTC (24 years, 6 months ago) by maekawa
Branch: GC
CVS Tags: maekawa-ipv6, VERSION_5_3, VERSION_5_0_ALPHA_4, VERSION_4_14, RELEASE_20000124, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, RELEASE_1_1_3, RELEASE_1_1_2
Changes since 1.1: +0 -0 lines

Import gc 4.14

#ifdef SOLARIS_THREADS

/* The set of all known threads.  We intercept thread creation and     */
/* joins.  We never actually create detached threads.  We allocate all */
/* new thread stacks ourselves.  These allow us to maintain this       */
/* data structure.                                                     */
/* Protected by GC_thr_lock.                                           */
/* Some of this should be declared volatile, but that's incosnsistent  */
/* with some library routine declarations.  In particular, the 	       */
/* definition of cond_t doesn't mention volatile!                      */
  typedef struct GC_Thread_Rep {
    struct GC_Thread_Rep * next;
    thread_t id;
    word flags;
#      define FINISHED 1       /* Thread has exited.   */
#      define DETACHED 2       /* Thread is intended to be detached.   */
#      define CLIENT_OWNS_STACK        4
                               /* Stack was supplied by client.        */
#      define SUSPENDED 8      /* Currently suspended. */
    ptr_t stack;
    size_t stack_size;
    cond_t join_cv;
    void * status;
  } * GC_thread;
  extern GC_thread GC_new_thread(thread_t id);

  extern GC_bool GC_thr_initialized;
  extern volatile GC_thread GC_threads[];
  extern size_t GC_min_stack_sz;
  extern size_t GC_page_sz;
  extern void GC_thr_init(void);

# endif /* SOLARIS_THREADS */