4109fe8594
libjava: 2004-08-13 Bryce McKinlay <mckinlay@redhat.com> * configure.in (GCINCS): Don't use "boehm-cflags". Instead, -I boehm-gc's include dirs. * configure: Rebuilt. * include/boehm-gc.h: Include gc_config.h. boehm-gc: 2004-08-13 Bryce McKinlay <mckinlay@redhat.com> * configure.ac (gc_cflags): Add -Iinclude. (AC_CONFIG_HEADERS): New. Configure gc_config.h header. Don't write DEFS to boehm-cflags file. * configure: Rebuilt. * gcj_mlc.c: Check #ifdef GC_GCJ_SUPPORT after including headers. * specific.c: Check #ifdef GC_LINUX_THREADS after including headers. * include/gc_config_macros.h: Remove backward-compatibility redefinitions of GC_ names. * include/gc.h: Include <gc_config.h>. 2004-08-13 Bryce McKinlay <mckinlay@redhat.com> Import Boehm GC version 6.3. From-SVN: r85972
38 lines
1.5 KiB
C
38 lines
1.5 KiB
C
#ifdef GC_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 SUSPNDED 8 /* Currently suspended. */
|
|
/* SUSPENDED is used insystem header. */
|
|
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);
|
|
extern ptr_t GC_stack_alloc(size_t * stack_size);
|
|
extern void GC_stack_free(ptr_t stack, size_t size);
|
|
|
|
# endif /* GC_SOLARIS_THREADS */
|
|
|