]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Mon, 31 Mar 2014 11:45:53 +0000 (11:45 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Mon, 31 Mar 2014 11:45:53 +0000 (11:45 +0000)
MagickCore/cache.c

index acac3d6e4348996d6e5f9e82fcf90e815dd3f3e1..3aae81762dac39656ec87f33d05a3b5bd328a89a 100644 (file)
@@ -3215,8 +3215,12 @@ static MagickBooleanType OpenPixelCacheOnDisk(CacheInfo *cache_info,
   /*
     Open pixel cache on disk.
   */
+  LockSemaphoreInfo(cache_info->file_semaphore);
   if (cache_info->file != -1)
-    return(MagickTrue);  /* cache already open */
+    {
+      UnlockSemaphoreInfo(cache_info->file_semaphore);
+      return(MagickTrue);  /* cache already open */
+    }
   if (*cache_info->cache_filename == '\0')
     file=AcquireUniqueFileResource(cache_info->cache_filename);
   else
@@ -3246,10 +3250,14 @@ static MagickBooleanType OpenPixelCacheOnDisk(CacheInfo *cache_info,
       }
     }
   if (file == -1)
-    return(MagickFalse);
+    {
+      UnlockSemaphoreInfo(cache_info->file_semaphore);
+      return(MagickFalse);
+    }
   (void) AcquireMagickResource(FileResource,1);
   cache_info->file=file;
   cache_info->mode=mode;
+  UnlockSemaphoreInfo(cache_info->file_semaphore);
   return(MagickTrue);
 }