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/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/threads.h')
-rw-r--r-- | libguile/threads.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libguile/threads.h b/libguile/threads.h index 54d64141b..f8404cfb6 100644 --- a/libguile/threads.h +++ b/libguile/threads.h @@ -3,7 +3,7 @@ #ifndef SCM_THREADS_H #define SCM_THREADS_H -/* Copyright (C) 1996,1997,1998,2000,2001, 2002, 2003, 2004, 2006, 2007, 2008, 2009, 2011 Free Software Foundation, Inc. +/* Copyright (C) 1996,1997,1998,2000,2001, 2002, 2003, 2004, 2006, 2007, 2008, 2009, 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 @@ -130,6 +130,10 @@ typedef struct scm_i_thread { #define SCM_VALIDATE_CONDVAR(pos, a) \ scm_assert_smob_type (scm_tc16_condvar, (a)) +#define SCM_PTHREAD_ATFORK_LOCK_STATIC_MUTEX(m) \ + SCM_SNARF_HERE(SCM_DEFINE_ATFORK_HANDLERS_FOR_MUTEX(&m,lock_##m,unlock_##m))\ + SCM_SNARF_INIT(scm_i_pthread_atfork (lock_##m, unlock_##m, unlock_##m);) + SCM_API SCM scm_spawn_thread (scm_t_catch_body body, void *body_data, scm_t_catch_handler handler, void *handler_data); |