diff options
author | Andy Wingo <wingo@pobox.com> | 2011-05-13 15:45:43 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2011-05-13 15:45:43 +0200 |
commit | 86fb1eb631d455aec634aa475a14d2c88052752c (patch) | |
tree | 98936072396a05aa1e4a6d177452f6d5e65a62f5 /libguile/threads.c | |
parent | fc7bd367ab4b5027a7f80686b1e229c62e43c90b (diff) | |
parent | 2002f1f84797c2c46d0634eabd5ac5fd61e13d73 (diff) | |
download | guile-86fb1eb631d455aec634aa475a14d2c88052752c.tar.gz |
merge strictness branch from 2.0
Diffstat (limited to 'libguile/threads.c')
-rw-r--r-- | libguile/threads.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/libguile/threads.c b/libguile/threads.c index f49696b1d..def92811b 100644 --- a/libguile/threads.c +++ b/libguile/threads.c @@ -607,6 +607,13 @@ typedef struct { #define SCM_MUTEXP(x) SCM_SMOB_PREDICATE (scm_tc16_mutex, x) #define SCM_MUTEX_DATA(x) ((fat_mutex *) SCM_SMOB_DATA (x)) +static SCM +call_cleanup (void *data) +{ + SCM *proc_p = data; + return scm_call_0 (*proc_p); +} + /* Perform thread tear-down, in guile mode. */ static void * @@ -624,7 +631,7 @@ do_thread_exit (void *v) t->cleanup_handler = SCM_BOOL_F; t->result = scm_internal_catch (SCM_BOOL_T, - (scm_t_catch_body) scm_call_0, ptr, + call_cleanup, &ptr, scm_handle_by_message_noexit, NULL); } |