diff options
-rw-r--r-- | libguile/threads.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/libguile/threads.c b/libguile/threads.c index 468d1f8bb..07138a5f8 100644 --- a/libguile/threads.c +++ b/libguile/threads.c @@ -1456,12 +1456,24 @@ SCM_DEFINE (scm_lock_mutex_timed, "lock-mutex", 1, 2, 0, } #undef FUNC_NAME +static void +lock_mutex_return_void (SCM mx) +{ + (void) scm_lock_mutex (mx); +} + +static void +unlock_mutex_return_void (SCM mx) +{ + (void) scm_unlock_mutex (mx); +} + void scm_dynwind_lock_mutex (SCM mutex) { - scm_dynwind_unwind_handler_with_scm ((void(*)(SCM))scm_unlock_mutex, mutex, + scm_dynwind_unwind_handler_with_scm (unlock_mutex_return_void, mutex, SCM_F_WIND_EXPLICITLY); - scm_dynwind_rewind_handler_with_scm ((void(*)(SCM))scm_lock_mutex, mutex, + scm_dynwind_rewind_handler_with_scm (lock_mutex_return_void, mutex, SCM_F_WIND_EXPLICITLY); } |