18 #ifndef MAGICKCORE_MUTEX_H 19 #define MAGICKCORE_MUTEX_H 21 #if defined(__cplusplus) || defined(c_plusplus) 33 #if defined(MAGICKCORE_OPENMP_SUPPORT) 38 translation_unit_mutex;
39 #elif defined(MAGICKCORE_THREAD_SUPPORT) 40 static pthread_mutex_t
41 translation_unit_mutex = PTHREAD_MUTEX_INITIALIZER;
42 #elif defined(MAGICKCORE_WINDOWS_SUPPORT) 44 translation_unit_mutex = 0;
49 #if defined(MAGICKCORE_OPENMP_SUPPORT) 50 omp_destroy_lock(&translation_unit_mutex);
57 #if defined(MAGICKCORE_OPENMP_SUPPORT) 58 omp_init_lock(&translation_unit_mutex);
65 #if defined(MAGICKCORE_OPENMP_SUPPORT) 68 omp_set_lock(&translation_unit_mutex);
69 #elif defined(MAGICKCORE_THREAD_SUPPORT) 81 #elif defined(MAGICKCORE_WINDOWS_SUPPORT) 82 while (InterlockedCompareExchange(&translation_unit_mutex,1L,0L) != 0)
89 #if defined(MAGICKCORE_OPENMP_SUPPORT) 90 omp_unset_lock(&translation_unit_mutex);
91 #elif defined(MAGICKCORE_THREAD_SUPPORT) 103 #elif defined(MAGICKCORE_WINDOWS_SUPPORT) 104 InterlockedExchange(&translation_unit_mutex,0L);
108 #if defined(__cplusplus) || defined(c_plusplus) static void InitializeMagickMutex(void)
Definition: mutex.h:55
#define ThrowFatalException(severity, tag)
Definition: exception-private.h:42
#define pthread_mutex_lock
Definition: vms.h:824
Definition: exception.h:78
MagickBooleanType
Definition: magick-type.h:198
static void UnlockMagickMutex(void)
Definition: mutex.h:87
Definition: magick-type.h:201
#define pthread_mutex_unlock
Definition: vms.h:826
static void LockMagickMutex(void)
Definition: mutex.h:63
static void DestroyMagickMutex(void)
Definition: mutex.h:47
Definition: magick-type.h:200