]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sun, 26 Jan 2014 12:52:00 +0000 (12:52 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sun, 26 Jan 2014 12:52:00 +0000 (12:52 +0000)
MagickCore/semaphore-private.h
MagickCore/semaphore.c

index fe3ec898b482cc73351544a161574196dc3bfff3..f3fe50418592120bd052d77ac8958a21e368e278 100644 (file)
@@ -28,15 +28,15 @@ extern MagickPrivate MagickBooleanType
 extern MagickPrivate void
   SemaphoreComponentTerminus(void);
 
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-static omp_lock_t
-  semaphore_mutex;
-#elif defined(MAGICKCORE_THREAD_SUPPORT)
+#if defined(MAGICKCORE_THREAD_SUPPORT)
 static pthread_mutex_t
   semaphore_mutex = PTHREAD_MUTEX_INITIALIZER;
 #elif defined(MAGICKCORE_HAVE_WINTHREADS)
 static LONG
   semaphore_mutex = 0;
+#elif defined(MAGICKCORE_OPENMP_SUPPORT)
+static omp_lock_t
+  semaphore_mutex;
 #else
 static ssize_t
   semaphore_mutex = 0;
@@ -49,10 +49,12 @@ static inline void DestroyMagickMutex(void)
 {
   if (active_mutex != MagickFalse)
     {
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-      omp_destroy_lock(&semaphore_mutex);
+#if defined(MAGICKCORE_THREAD_SUPPORT)
+      ;
 #elif defined(MAGICKCORE_HAVE_WINTHREADS)
       DeleteCriticalSection(&semaphore_mutex);
+#elif defined(MAGICKCORE_OPENMP_SUPPORT)
+      omp_destroy_lock(&semaphore_mutex);
 #endif
     }
   active_mutex=MagickFalse;
@@ -62,10 +64,12 @@ static inline void InitializeMagickMutex(void)
 {
   if (active_mutex == MagickFalse)
     {
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-      omp_init_lock(&semaphore_mutex);
+#if defined(MAGICKCORE_THREAD_SUPPORT)
+      ;
 #elif defined(MAGICKCORE_HAVE_WINTHREADS)
       InitializeCriticalSection(&semaphore_mutex);
+#elif defined(MAGICKCORE_OPENMP_SUPPORT)
+      omp_init_lock(&semaphore_mutex);
 #endif
     }
   active_mutex=MagickTrue;
@@ -73,9 +77,7 @@ static inline void InitializeMagickMutex(void)
 
 static inline void LockMagickMutex(void)
 {
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-  omp_set_lock(&semaphore_mutex);
-#elif defined(MAGICKCORE_THREAD_SUPPORT)
+#if defined(MAGICKCORE_THREAD_SUPPORT)
   {
     int
       status;
@@ -90,14 +92,14 @@ static inline void LockMagickMutex(void)
 #elif defined(MAGICKCORE_HAVE_WINTHREADS)
   while (InterlockedCompareExchange(&semaphore_mutex,1L,0L) != 0)
     Sleep(10);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+  omp_set_lock(&semaphore_mutex);
 #endif
 }
 
 static inline void UnlockMagickMutex(void)
 {
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-  omp_unset_lock(&semaphore_mutex);
-#elif defined(MAGICKCORE_THREAD_SUPPORT)
+#if defined(MAGICKCORE_THREAD_SUPPORT)
   {
     int
       status;
@@ -111,6 +113,8 @@ static inline void UnlockMagickMutex(void)
   }
 #elif defined(MAGICKCORE_HAVE_WINTHREADS)
   InterlockedExchange(&semaphore_mutex,0L);
+#elif defined(MAGICKCORE_OPENMP_SUPPORT)
+  omp_unset_lock(&semaphore_mutex);
 #endif
 }
 
index 489b7f257768db9614a7f0fd89deffdd2a0afed4..718b0eb9908705e280a2b76962f1706257255f95 100644 (file)
@@ -203,9 +203,7 @@ MagickExport SemaphoreInfo *AllocateSemaphoreInfo(void)
   /*
     Initialize the semaphore.
   */
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-  omp_init_lock((omp_lock_t *) &semaphore_info->mutex);
-#elif defined(MAGICKCORE_THREAD_SUPPORT)
+#if defined(MAGICKCORE_THREAD_SUPPORT)
   {
     int
       status;
@@ -259,6 +257,8 @@ MagickExport SemaphoreInfo *AllocateSemaphoreInfo(void)
         _exit(1);
       }
   }
+#elif defined(MAGICKCORE_OPENMP_SUPPORT)
+  omp_init_lock((omp_lock_t *) &semaphore_info->mutex);
 #endif
   semaphore_info->id=GetMagickThreadId();
   semaphore_info->reference_count=0;
@@ -295,9 +295,7 @@ MagickExport void DestroySemaphoreInfo(SemaphoreInfo **semaphore_info)
   assert((*semaphore_info)->signature == MagickSignature);
   InitializeMagickMutex();
   LockMagickMutex();
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-  omp_destroy_lock((omp_lock_t *) &(*semaphore_info)->mutex);
-#elif defined(MAGICKCORE_THREAD_SUPPORT)
+#if defined(MAGICKCORE_THREAD_SUPPORT)
   {
     int
       status;
@@ -312,6 +310,8 @@ MagickExport void DestroySemaphoreInfo(SemaphoreInfo **semaphore_info)
   }
 #elif defined(MAGICKCORE_HAVE_WINTHREADS)
   DeleteCriticalSection(&(*semaphore_info)->mutex);
+#elif defined(MAGICKCORE_OPENMP_SUPPORT)
+  omp_destroy_lock((omp_lock_t *) &(*semaphore_info)->mutex);
 #endif
   (*semaphore_info)->signature=(~MagickSignature);
   *semaphore_info=(SemaphoreInfo *) RelinquishSemaphoreMemory(*semaphore_info);
@@ -344,9 +344,7 @@ MagickExport void LockSemaphoreInfo(SemaphoreInfo *semaphore_info)
 {
   assert(semaphore_info != (SemaphoreInfo *) NULL);
   assert(semaphore_info->signature == MagickSignature);
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-  omp_set_lock((omp_lock_t *) &semaphore_info->mutex);
-#elif defined(MAGICKCORE_THREAD_SUPPORT)
+#if defined(MAGICKCORE_THREAD_SUPPORT)
   {
     int
       status;
@@ -361,6 +359,8 @@ MagickExport void LockSemaphoreInfo(SemaphoreInfo *semaphore_info)
   }
 #elif defined(MAGICKCORE_HAVE_WINTHREADS)
   EnterCriticalSection(&semaphore_info->mutex);
+#elif defined(MAGICKCORE_OPENMP_SUPPORT)
+  omp_set_lock((omp_lock_t *) &semaphore_info->mutex);
 #endif
 #if defined(MAGICKCORE_DEBUG)
   if ((semaphore_info->reference_count > 0) &&
@@ -487,9 +487,7 @@ MagickExport void UnlockSemaphoreInfo(SemaphoreInfo *semaphore_info)
     }
   semaphore_info->reference_count--;
 #endif
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-  omp_unset_lock((omp_lock_t *) &semaphore_info->mutex);
-#elif defined(MAGICKCORE_THREAD_SUPPORT)
+#if defined(MAGICKCORE_THREAD_SUPPORT)
   {
     int
       status;
@@ -504,5 +502,7 @@ MagickExport void UnlockSemaphoreInfo(SemaphoreInfo *semaphore_info)
   }
 #elif defined(MAGICKCORE_HAVE_WINTHREADS)
   LeaveCriticalSection(&semaphore_info->mutex);
+#elif defined(MAGICKCORE_OPENMP_SUPPORT)
+  omp_unset_lock((omp_lock_t *) &semaphore_info->mutex);
 #endif
 }