[mutex] Prefer pthread over windows
https://github.com/harfbuzz/harfbuzz/issues/1728
This commit is contained in:
parent
a5d1b0bdaa
commit
210f93c143
|
@ -48,6 +48,17 @@
|
||||||
/* Defined externally, i.e. in config.h; must have typedef'ed hb_mutex_impl_t as well. */
|
/* Defined externally, i.e. in config.h; must have typedef'ed hb_mutex_impl_t as well. */
|
||||||
|
|
||||||
|
|
||||||
|
#elif !defined(HB_NO_MT) && (defined(HAVE_PTHREAD) || defined(__APPLE__))
|
||||||
|
|
||||||
|
#include <pthread.h>
|
||||||
|
typedef pthread_mutex_t hb_mutex_impl_t;
|
||||||
|
#define HB_MUTEX_IMPL_INIT PTHREAD_MUTEX_INITIALIZER
|
||||||
|
#define hb_mutex_impl_init(M) pthread_mutex_init (M, nullptr)
|
||||||
|
#define hb_mutex_impl_lock(M) pthread_mutex_lock (M)
|
||||||
|
#define hb_mutex_impl_unlock(M) pthread_mutex_unlock (M)
|
||||||
|
#define hb_mutex_impl_finish(M) pthread_mutex_destroy (M)
|
||||||
|
|
||||||
|
|
||||||
#elif !defined(HB_NO_MT) && defined(_WIN32)
|
#elif !defined(HB_NO_MT) && defined(_WIN32)
|
||||||
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
@ -63,17 +74,6 @@ typedef CRITICAL_SECTION hb_mutex_impl_t;
|
||||||
#define hb_mutex_impl_finish(M) DeleteCriticalSection (M)
|
#define hb_mutex_impl_finish(M) DeleteCriticalSection (M)
|
||||||
|
|
||||||
|
|
||||||
#elif !defined(HB_NO_MT) && (defined(HAVE_PTHREAD) || defined(__APPLE__))
|
|
||||||
|
|
||||||
#include <pthread.h>
|
|
||||||
typedef pthread_mutex_t hb_mutex_impl_t;
|
|
||||||
#define HB_MUTEX_IMPL_INIT PTHREAD_MUTEX_INITIALIZER
|
|
||||||
#define hb_mutex_impl_init(M) pthread_mutex_init (M, nullptr)
|
|
||||||
#define hb_mutex_impl_lock(M) pthread_mutex_lock (M)
|
|
||||||
#define hb_mutex_impl_unlock(M) pthread_mutex_unlock (M)
|
|
||||||
#define hb_mutex_impl_finish(M) pthread_mutex_destroy (M)
|
|
||||||
|
|
||||||
|
|
||||||
#elif !defined(HB_NO_MT) && defined(HAVE_INTEL_ATOMIC_PRIMITIVES)
|
#elif !defined(HB_NO_MT) && defined(HAVE_INTEL_ATOMIC_PRIMITIVES)
|
||||||
|
|
||||||
#if defined(HAVE_SCHED_H) && defined(HAVE_SCHED_YIELD)
|
#if defined(HAVE_SCHED_H) && defined(HAVE_SCHED_YIELD)
|
||||||
|
|
Loading…
Reference in New Issue