diff options
author | Andy Wingo <wingo@pobox.com> | 2011-12-01 23:31:50 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2011-12-01 23:31:50 +0100 |
commit | b2208d2e987759270c712e35c8164394a47a52aa (patch) | |
tree | 1edd39e74a266fc53c075d328696e8fbf33eba5b /libguile/threads.c | |
parent | 3dc9f41900a0e9f915da3aa1eea6e0fae829c40d (diff) | |
parent | 738c899e4c1ab9d25cfbcd1010f34e0cce400bca (diff) | |
download | guile-b2208d2e987759270c712e35c8164394a47a52aa.tar.gz |
Merge remote-tracking branch 'origin/stable-2.0'
Conflicts:
configure.ac
libguile/fluids.c
libguile/gc.c
libguile/gc.h
libguile/objcodes.c
libguile/procprop.c
libguile/vm.c
module/ice-9/psyntax-pp.scm
module/ice-9/psyntax.scm
Diffstat (limited to 'libguile/threads.c')
-rw-r--r-- | libguile/threads.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libguile/threads.c b/libguile/threads.c index ec5001ff4..aeadcfe6d 100644 --- a/libguile/threads.c +++ b/libguile/threads.c @@ -477,7 +477,7 @@ static SCM scm_i_default_dynamic_state; /* Run when a fluid is collected. */ void -scm_i_reset_fluid (size_t n, SCM val) +scm_i_reset_fluid (size_t n) { scm_i_thread *t; @@ -488,7 +488,7 @@ scm_i_reset_fluid (size_t n, SCM val) SCM v = SCM_I_DYNAMIC_STATE_FLUIDS (t->dynamic_state); if (n < SCM_SIMPLE_VECTOR_LENGTH (v)) - SCM_SIMPLE_VECTOR_SET (v, n, val); + SCM_SIMPLE_VECTOR_SET (v, n, SCM_UNDEFINED); } scm_i_pthread_mutex_unlock (&thread_admin_mutex); } @@ -1001,6 +1001,7 @@ SCM_DEFINE (scm_call_with_new_thread, "call-with-new-thread", 1, 1, 0, SCM_ASSERT (SCM_UNBNDP (handler) || scm_is_true (scm_procedure_p (handler)), handler, SCM_ARG2, FUNC_NAME); + GC_collect_a_little (); data.parent = scm_current_dynamic_state (); data.thunk = thunk; data.handler = handler; |