From: cristy Date: Mon, 31 Mar 2014 11:54:56 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~2521 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f8237083ae9b59efc16f6b9d3fee5af528ac2b16;p=imagemagick --- diff --git a/MagickCore/cache.c b/MagickCore/cache.c index 3aae81762..4e0a0c6a6 100644 --- a/MagickCore/cache.c +++ b/MagickCore/cache.c @@ -3215,12 +3215,8 @@ static MagickBooleanType OpenPixelCacheOnDisk(CacheInfo *cache_info, /* Open pixel cache on disk. */ - LockSemaphoreInfo(cache_info->file_semaphore); if (cache_info->file != -1) - { - UnlockSemaphoreInfo(cache_info->file_semaphore); - return(MagickTrue); /* cache already open */ - } + return(MagickTrue); /* cache already open */ if (*cache_info->cache_filename == '\0') file=AcquireUniqueFileResource(cache_info->cache_filename); else @@ -3250,14 +3246,10 @@ static MagickBooleanType OpenPixelCacheOnDisk(CacheInfo *cache_info, } } if (file == -1) - { - UnlockSemaphoreInfo(cache_info->file_semaphore); - return(MagickFalse); - } + return(MagickFalse); (void) AcquireMagickResource(FileResource,1); cache_info->file=file; cache_info->mode=mode; - UnlockSemaphoreInfo(cache_info->file_semaphore); return(MagickTrue); } @@ -3272,12 +3264,8 @@ static inline MagickOffsetType WritePixelCacheRegion( count; #if !defined(MAGICKCORE_HAVE_PWRITE) - LockSemaphoreInfo(cache_info->file_semaphore); if (lseek(cache_info->file,offset,SEEK_SET) < 0) - { - UnlockSemaphoreInfo(cache_info->file_semaphore); - return((MagickOffsetType) -1); - } + return((MagickOffsetType) -1); #endif count=0; for (i=0; i < (MagickOffsetType) length; i+=count) @@ -3296,9 +3284,6 @@ static inline MagickOffsetType WritePixelCacheRegion( break; } } -#if !defined(MAGICKCORE_HAVE_PREAD) - UnlockSemaphoreInfo(cache_info->file_semaphore); -#endif return(i); } @@ -4042,12 +4027,8 @@ static inline MagickOffsetType ReadPixelCacheRegion( count; #if !defined(MAGICKCORE_HAVE_PREAD) - LockSemaphoreInfo(cache_info->file_semaphore); if (lseek(cache_info->file,offset,SEEK_SET) < 0) - { - UnlockSemaphoreInfo(cache_info->file_semaphore); - return((MagickOffsetType) -1); - } + return((MagickOffsetType) -1); #endif count=0; for (i=0; i < (MagickOffsetType) length; i+=count) @@ -4066,9 +4047,6 @@ static inline MagickOffsetType ReadPixelCacheRegion( break; } } -#if !defined(MAGICKCORE_HAVE_PREAD) - UnlockSemaphoreInfo(cache_info->file_semaphore); -#endif return(i); } @@ -4137,10 +4115,12 @@ static MagickBooleanType ReadPixelCacheMetacontent( /* Read meta content from disk. */ + LockSemaphoreInfo(cache_info->file_semaphore); if (OpenPixelCacheOnDisk(cache_info,IOMode) == MagickFalse) { ThrowFileException(exception,FileOpenError,"UnableToOpenFile", cache_info->cache_filename); + UnlockSemaphoreInfo(cache_info->file_semaphore); return(MagickFalse); } if ((cache_info->columns == nexus_info->region.width) && @@ -4162,6 +4142,7 @@ static MagickBooleanType ReadPixelCacheMetacontent( } if (IsFileDescriptorLimitExceeded() != MagickFalse) (void) ClosePixelCacheOnDisk(cache_info); + UnlockSemaphoreInfo(cache_info->file_semaphore); break; } case DistributedCache: @@ -4301,10 +4282,12 @@ static MagickBooleanType ReadPixelCachePixels(CacheInfo *restrict cache_info, /* Read pixels from disk. */ + LockSemaphoreInfo(cache_info->file_semaphore); if (OpenPixelCacheOnDisk(cache_info,IOMode) == MagickFalse) { ThrowFileException(exception,FileOpenError,"UnableToOpenFile", cache_info->cache_filename); + UnlockSemaphoreInfo(cache_info->file_semaphore); return(MagickFalse); } if ((cache_info->columns == nexus_info->region.width) && @@ -4324,6 +4307,7 @@ static MagickBooleanType ReadPixelCachePixels(CacheInfo *restrict cache_info, } if (IsFileDescriptorLimitExceeded() != MagickFalse) (void) ClosePixelCacheOnDisk(cache_info); + UnlockSemaphoreInfo(cache_info->file_semaphore); break; } case DistributedCache: @@ -5109,10 +5093,12 @@ static MagickBooleanType WritePixelCacheMetacontent(CacheInfo *cache_info, /* Write associated pixels to disk. */ + LockSemaphoreInfo(cache_info->file_semaphore); if (OpenPixelCacheOnDisk(cache_info,IOMode) == MagickFalse) { ThrowFileException(exception,FileOpenError,"UnableToOpenFile", cache_info->cache_filename); + UnlockSemaphoreInfo(cache_info->file_semaphore); return(MagickFalse); } if ((cache_info->columns == nexus_info->region.width) && @@ -5134,6 +5120,7 @@ static MagickBooleanType WritePixelCacheMetacontent(CacheInfo *cache_info, } if (IsFileDescriptorLimitExceeded() != MagickFalse) (void) ClosePixelCacheOnDisk(cache_info); + UnlockSemaphoreInfo(cache_info->file_semaphore); break; } case DistributedCache: @@ -5273,10 +5260,12 @@ static MagickBooleanType WritePixelCachePixels(CacheInfo *restrict cache_info, /* Write pixels to disk. */ + LockSemaphoreInfo(cache_info->file_semaphore); if (OpenPixelCacheOnDisk(cache_info,IOMode) == MagickFalse) { ThrowFileException(exception,FileOpenError,"UnableToOpenFile", cache_info->cache_filename); + UnlockSemaphoreInfo(cache_info->file_semaphore); return(MagickFalse); } if ((cache_info->columns == nexus_info->region.width) && @@ -5297,6 +5286,7 @@ static MagickBooleanType WritePixelCachePixels(CacheInfo *restrict cache_info, } if (IsFileDescriptorLimitExceeded() != MagickFalse) (void) ClosePixelCacheOnDisk(cache_info); + UnlockSemaphoreInfo(cache_info->file_semaphore); break; } case DistributedCache: