summaryrefslogtreecommitdiff
path: root/src/cairo-mutex-private.h
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2007-04-19 16:26:21 -0400
committerBehdad Esfahbod <behdad@behdad.org>2007-04-19 16:26:21 -0400
commit97c197478023ceb5477a203d058eaec2cb18f987 (patch)
treede6d59e24d3718b1727499b8dd049f85cda24436 /src/cairo-mutex-private.h
parent6d2a2dd6d9190c62b209e47c083b7df72e7134fb (diff)
downloadcairo-97c197478023ceb5477a203d058eaec2cb18f987.tar.gz
[cairo-mutex] Add default implementation for CAIRO_MUTEX_INIT
that uses CAIRO_MUTEX_NIL_INITIALIZER. This used to be the implementation for pthread because pthread_mutex_init() is broken. See d48bb4fbe876a93199ba48fcf5f32734fbe18ba9.
Diffstat (limited to 'src/cairo-mutex-private.h')
-rw-r--r--src/cairo-mutex-private.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/cairo-mutex-private.h b/src/cairo-mutex-private.h
index ba9c39ac2..bc0fcfc96 100644
--- a/src/cairo-mutex-private.h
+++ b/src/cairo-mutex-private.h
@@ -63,10 +63,6 @@ CAIRO_BEGIN_DECLS
# define CAIRO_MUTEX_INITIALIZE() CAIRO_MUTEX_NOOP
# define CAIRO_MUTEX_LOCK(name) pthread_mutex_lock (&name)
# define CAIRO_MUTEX_UNLOCK(name) pthread_mutex_unlock (&name)
-# define CAIRO_MUTEX_INIT(mutex) do { \
- pthread_mutex_t tmp_mutex = PTHREAD_MUTEX_INITIALIZER; \
- memcpy (mutex, &tmp_mutex, sizeof (tmp_mutex)); \
-} while (0)
# define CAIRO_MUTEX_FINI(mutex) pthread_mutex_destroy (mutex)
# define CAIRO_MUTEX_NIL_INITIALIZER PTHREAD_MUTEX_INITIALIZER
@@ -146,6 +142,13 @@ CAIRO_BEGIN_DECLS
#undef CAIRO_MUTEX_DECLARE
+#ifndef CAIRO_MUTEX_INIT
+# define CAIRO_MUTEX_INIT(_mutex) do { \
+ cairo_mutex_t _tmp_mutex = CAIRO_MUTEX_NIL_INITIALIZER; \
+ memcpy ((_mutex), &_tmp_mutex, sizeof (_tmp_mutex)); \
+} while (0)
+#endif
+
#ifndef CAIRO_MUTEX_FINI
# define CAIRO_MUTEX_FINI(mutex) CAIRO_MUTEX_NOOP
#endif