summaryrefslogtreecommitdiff
path: root/libguile/pthread-threads.h
diff options
context:
space:
mode:
authorMikael Djurfeldt <djurfeldt@nada.kth.se>2002-12-16 20:29:18 +0000
committerMikael Djurfeldt <djurfeldt@nada.kth.se>2002-12-16 20:29:18 +0000
commit6da2dfc4e03d9aa842eadb5048bfc601f5aac23c (patch)
tree6d9366728a0d7b7290f39975329db777e74068b1 /libguile/pthread-threads.h
parent0b6843b1eb38ecec4d1c5711745505845a9fc809 (diff)
downloadguile-6da2dfc4e03d9aa842eadb5048bfc601f5aac23c.tar.gz
* pthread-threads.c, pthread-threads.h (SCM_DEBUG_THREADS): Added
support for debugging mutex operations.
Diffstat (limited to 'libguile/pthread-threads.h')
-rw-r--r--libguile/pthread-threads.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/libguile/pthread-threads.h b/libguile/pthread-threads.h
index 8b3d4fe32..2ab3d16a0 100644
--- a/libguile/pthread-threads.h
+++ b/libguile/pthread-threads.h
@@ -80,6 +80,8 @@ typedef struct { char _[SCM_MUTEX_MAXSIZE]; } scm_t_mutex;
extern scm_t_mutexattr scm_i_plugin_mutex; /* The "fast" mutex. */
+/* This debug stuff made things a bit messy. This needs some
+ reorganization. */
#ifdef SCM_DEBUG_THREADS
int scm_i_plugin_mutex_init (scm_t_mutex *, const scm_t_mutexattr *);
int scm_i_plugin_mutex_lock (scm_t_mutex *);
@@ -134,11 +136,18 @@ int scm_i_plugin_rec_mutex_unlock (scm_t_rec_mutex *);
#define scm_t_cond pthread_cond_t
#define scm_i_plugin_cond_init pthread_cond_init
-#define scm_i_plugin_cond_destroy pthread_cond_destroy
+#define scm_i_plugin_cond_destroy pthread_cond_destroy
+#ifdef SCM_DEBUG_THREADS
+int scm_i_plugin_cond_wait (scm_t_cond *, scm_t_mutex *);
+int scm_i_plugin_cond_timedwait (scm_t_cond *,
+ scm_t_mutex *,
+ const struct timespec *);
+#else
#define scm_i_plugin_cond_wait(c, m) \
pthread_cond_wait ((c), (pthread_mutex_t *) (m))
#define scm_i_plugin_cond_timedwait(c, m, t) \
pthread_cond_timedwait ((c), (pthread_mutex_t *) (m), (t))
+#endif
#define scm_i_plugin_cond_signal pthread_cond_signal
#define scm_i_plugin_cond_broadcast pthread_cond_broadcast