diff options
author | Hans Boehm <Hans_Boehm@hp.com> | 2001-05-20 22:36:34 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2001-05-20 22:36:34 +0000 |
commit | 18d6fb976576aba2971ad6cd68228a64b0c83e28 (patch) | |
tree | bb912f33fd2185851d06bbae554211ac338240ff /boehm-gc | |
parent | cb5fa0f8ea731239b4e5927b9b9c668854d9fd68 (diff) | |
download | gcc-18d6fb976576aba2971ad6cd68228a64b0c83e28.tar.gz |
configure.host: Build with -fexceptions.
* configure.host: Build with -fexceptions.
* linux_threads.c: Remember which thread stopped world for
From-SVN: r42362
Diffstat (limited to 'boehm-gc')
-rw-r--r-- | boehm-gc/ChangeLog | 5 | ||||
-rw-r--r-- | boehm-gc/configure.host | 2 | ||||
-rw-r--r-- | boehm-gc/linux_threads.c | 8 |
3 files changed, 14 insertions, 1 deletions
diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog index 7d0991697f8..1b28d5ce3a7 100644 --- a/boehm-gc/ChangeLog +++ b/boehm-gc/ChangeLog @@ -1,3 +1,8 @@ +2001-05-19 Hans Boehm <hans_boehm@hp.com> + + * configure.host: Build with -fexceptions. + * linux_threads.c: Remember which thread stopped world for + 2001-05-04 Loren J. Rittle <ljrittle@acm.org> with final tuning by Bryce McKinlay diff --git a/boehm-gc/configure.host b/boehm-gc/configure.host index 1903242fec4..323668dd33a 100644 --- a/boehm-gc/configure.host +++ b/boehm-gc/configure.host @@ -17,7 +17,7 @@ # It sets the following shell variables: # boehm_gc_cflags Special CFLAGS to use when building -boehm_gc_cflags= +boehm_gc_cflags=-fexceptions case "${target_optspace}:${host}" in yes:*) diff --git a/boehm-gc/linux_threads.c b/boehm-gc/linux_threads.c index 2c856f567a0..92da410e3da 100644 --- a/boehm-gc/linux_threads.c +++ b/boehm-gc/linux_threads.c @@ -326,6 +326,11 @@ GC_thread GC_lookup_thread(pthread_t id) return(p); } +/* There seems to be a very rare thread stopping problem. To help us */ +/* debug that, we save the ids of the stopping thread. */ +pthread_t GC_stopping_thread; +int GC_stopping_pid; + /* Caller holds allocation lock. */ void GC_stop_world() { @@ -335,6 +340,8 @@ void GC_stop_world() register int n_live_threads = 0; register int result; + GC_stopping_thread = my_thread; /* debugging only. */ + GC_stopping_pid = getpid(); /* debugging only. */ for (i = 0; i < THREAD_TABLE_SZ; i++) { for (p = GC_threads[i]; p != 0; p = p -> next) { if (p -> id != my_thread) { @@ -403,6 +410,7 @@ void GC_start_world() #if DEBUG_THREADS GC_printf0("World started\n"); #endif + GC_stopping_thread = 0; /* debugging only */ } # ifdef IA64 |