diff options
author | Andy Wingo <wingo@pobox.com> | 2012-02-17 11:35:02 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2012-02-17 12:09:28 +0100 |
commit | 2f745b64a1eb06e9e175a1b497d5270bebff9097 (patch) | |
tree | 56706ae52f6e7f4097c8e4e2b4771b27e2525a19 /libguile/pthread-threads.h | |
parent | f609480611cfd1585409fd6b1b90beb730b026cf (diff) | |
download | guile-2f745b64a1eb06e9e175a1b497d5270bebff9097.tar.gz |
add pthread_atfork helpers to our threading shims
* libguile/null-threads.h:
* libguile/pthread-threads.h (SCM_DEFINE_ATFORK_HANDLERS_FOR_MUTEX)
(scm_i_pthread_atfork): Define a pthread_atfork shim, and a helper to
declare procedures to lock and unlock a mutex.
* libguile/threads.h (SCM_PTHREAD_ATFORK_LOCK_STATIC_MUTEX): New macro,
causes the snarfer to emit a pthread_atfork call to lock a mutex, if
threads are enabled.
Diffstat (limited to 'libguile/pthread-threads.h')
-rw-r--r-- | libguile/pthread-threads.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libguile/pthread-threads.h b/libguile/pthread-threads.h index b5fae4e89..63b47b222 100644 --- a/libguile/pthread-threads.h +++ b/libguile/pthread-threads.h @@ -3,7 +3,7 @@ #ifndef SCM_PTHREADS_THREADS_H #define SCM_PTHREADS_THREADS_H -/* Copyright (C) 2002, 2005, 2006, 2011 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2005, 2006, 2011, 2012 Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License @@ -97,6 +97,14 @@ extern pthread_mutexattr_t scm_i_pthread_mutexattr_recursive[1]; #define scm_i_scm_pthread_cond_wait scm_pthread_cond_wait #define scm_i_scm_pthread_cond_timedwait scm_pthread_cond_timedwait +#define SCM_DEFINE_ATFORK_HANDLERS_FOR_MUTEX(m,lock,unlock) \ + static void lock (void) { pthread_mutex_lock (m); } \ + static void unlock (void) { pthread_mutex_unlock (m); } + +/* noop */ +#define scm_i_pthread_atfork(pre,parent,child) \ + pthread_atfork (pre, parent, child) + #endif /* SCM_PTHREADS_THREADS_H */ /* |