summaryrefslogtreecommitdiff
path: root/libguile/threads.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2012-02-08 19:57:41 +0100
committerAndy Wingo <wingo@pobox.com>2012-02-17 12:11:14 +0100
commit6a97b1f93aace5c7c976aef51d36b3ae9cfd5630 (patch)
treed62914e464bb680663453931973aef3cb4e187b5 /libguile/threads.c
parent2f745b64a1eb06e9e175a1b497d5270bebff9097 (diff)
downloadguile-6a97b1f93aace5c7c976aef51d36b3ae9cfd5630.tar.gz
install pthread_atfork handlers for guile's static mutexen
* libguile/async.c: * libguile/deprecation.c: * libguile/fluids.c: * libguile/gc.c: * libguile/instructions.c: * libguile/ports.c: * libguile/posix.c: * libguile/strings.c: * libguile/threads.c: Use the SCM_PTHREAD_ATFORK_LOCK_STATIC_MUTEX mechanism to lock a number of static mutexen.
Diffstat (limited to 'libguile/threads.c')
-rw-r--r--libguile/threads.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libguile/threads.c b/libguile/threads.c
index d5c51eaf3..f78889b40 100644
--- a/libguile/threads.c
+++ b/libguile/threads.c
@@ -500,6 +500,7 @@ SCM_THREAD_LOCAL scm_i_thread *scm_i_current_thread = NULL;
static scm_i_pthread_mutex_t thread_admin_mutex = SCM_I_PTHREAD_MUTEX_INITIALIZER;
+SCM_PTHREAD_ATFORK_LOCK_STATIC_MUTEX (thread_admin_mutex);
static scm_i_thread *all_threads = NULL;
static int thread_count;
@@ -2134,6 +2135,7 @@ static int threads_initialized_p = 0;
/* This mutex is used by SCM_CRITICAL_SECTION_START/END.
*/
scm_i_pthread_mutex_t scm_i_critical_section_mutex;
+SCM_PTHREAD_ATFORK_LOCK_STATIC_MUTEX (scm_i_critical_section_mutex);
static SCM dynwind_critical_section_mutex;
@@ -2149,6 +2151,7 @@ scm_dynwind_critical_section (SCM mutex)
/*** Initialization */
scm_i_pthread_mutex_t scm_i_misc_mutex;
+SCM_PTHREAD_ATFORK_LOCK_STATIC_MUTEX (scm_i_misc_mutex);
#if SCM_USE_PTHREAD_THREADS
pthread_mutexattr_t scm_i_pthread_mutexattr_recursive[1];