diff options
author | Neil Jerram <neil@ossau.uklinux.net> | 2008-02-07 01:02:33 +0000 |
---|---|---|
committer | Neil Jerram <neil@ossau.uklinux.net> | 2008-02-07 01:02:33 +0000 |
commit | dcde80f0969d7aad0036e0dbb03e74966476a45e (patch) | |
tree | 865fca74327e8dd4b2188b0e118363a093966a36 | |
parent | 595f4ed74bb93e9523f023813c2795165d82bf93 (diff) | |
download | guile-dcde80f0969d7aad0036e0dbb03e74966476a45e.tar.gz |
*** empty log message ***
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | THANKS | 1 | ||||
-rw-r--r-- | libguile/ChangeLog | 6 | ||||
-rw-r--r-- | libguile/throw.c | 10 |
4 files changed, 11 insertions, 7 deletions
@@ -23,6 +23,7 @@ system and library calls. ** Fixed compilation of `numbers.c' with Sun Studio (Solaris 9) ** Fixed wrong-type-arg errors when creating zero length SRFI-4 uniform vectors on AIX. +** Fixed a deadlock that occurs upon GC with multiple threads. * New modules (see the manual for details) @@ -2,6 +2,7 @@ Contributors since the last release: Rob Browning Ludovic Courtès + Julian Graham Stefan Jahn Neil Jerram Antoine Mathys diff --git a/libguile/ChangeLog b/libguile/ChangeLog index 18e473b79..4aef98c2e 100644 --- a/libguile/ChangeLog +++ b/libguile/ChangeLog @@ -1,3 +1,9 @@ +2008-02-07 Julian Graham <joolean@gmail.com> + + * throw.c (make_jmpbuf): Don't enter critical section during thread + spawn -- there is a possibility of deadlock if other threads are + exiting. + 2008-02-06 Neil Jerram <neil@ossau.uklinux.net> * gc-malloc.c (scm_gc_malloc): Return NULL if requested size is 0. diff --git a/libguile/throw.c b/libguile/throw.c index 115bb0c03..49a48e245 100644 --- a/libguile/throw.c +++ b/libguile/throw.c @@ -71,13 +71,9 @@ static SCM make_jmpbuf (void) { SCM answer; - SCM_CRITICAL_SECTION_START; - { - SCM_NEWSMOB2 (answer, tc16_jmpbuffer, 0, 0); - SETJBJMPBUF(answer, (jmp_buf *)0); - DEACTIVATEJB(answer); - } - SCM_CRITICAL_SECTION_END; + SCM_NEWSMOB2 (answer, tc16_jmpbuffer, 0, 0); + SETJBJMPBUF(answer, (jmp_buf *)0); + DEACTIVATEJB(answer); return answer; } |