From 199f22bc59fae59e318630e37e1229a1fda91695 Mon Sep 17 00:00:00 2001 From: Cristy Date: Mon, 11 Mar 2019 08:09:47 -0400 Subject: [PATCH] ... --- MagickCore/resource.c | 106 +++++++++++++++++++++++++++++++++--------- 1 file changed, 83 insertions(+), 23 deletions(-) diff --git a/MagickCore/resource.c b/MagickCore/resource.c index f90d257d8..b2df00d29 100644 --- a/MagickCore/resource.c +++ b/MagickCore/resource.c @@ -206,9 +206,21 @@ MagickExport MagickBooleanType AcquireMagickResource(const ResourceType type, current=0; bi=MagickFalse; status=MagickFalse; - if (resource_semaphore[type] == (SemaphoreInfo *) NULL) - ActivateSemaphoreInfo(&resource_semaphore[type]); - LockSemaphoreInfo(resource_semaphore[type]); + switch (type) + { + case DiskResource: + case FileResource: + case MapResource: + case MemoryResource: + case TimeResource: + { + if (resource_semaphore[type] == (SemaphoreInfo *) NULL) + ActivateSemaphoreInfo(&resource_semaphore[type]); + LockSemaphoreInfo(resource_semaphore[type]); + break; + } + default: ; + } switch (type) { case AreaResource: @@ -330,7 +342,19 @@ MagickExport MagickBooleanType AcquireMagickResource(const ResourceType type, break; } } - UnlockSemaphoreInfo(resource_semaphore[type]); + switch (type) + { + case DiskResource: + case FileResource: + case MapResource: + case MemoryResource: + case TimeResource: + { + UnlockSemaphoreInfo(resource_semaphore[type]); + break; + } + default: ; + } if ((limit == MagickResourceInfinity) || (size < limit)) status=MagickTrue; if (IsEventLogging() != MagickFalse) @@ -638,9 +662,21 @@ MagickExport MagickSizeType GetMagickResource(const ResourceType type) resource; resource=0; - if (resource_semaphore[type] == (SemaphoreInfo *) NULL) - ActivateSemaphoreInfo(&resource_semaphore[type]); - LockSemaphoreInfo(resource_semaphore[type]); + switch (type) + { + case DiskResource: + case FileResource: + case MapResource: + case MemoryResource: + case TimeResource: + { + if (resource_semaphore[type] == (SemaphoreInfo *) NULL) + ActivateSemaphoreInfo(&resource_semaphore[type]); + LockSemaphoreInfo(resource_semaphore[type]); + break; + } + default: ; + } switch (type) { case AreaResource: @@ -701,7 +737,19 @@ MagickExport MagickSizeType GetMagickResource(const ResourceType type) default: break; } - UnlockSemaphoreInfo(resource_semaphore[type]); + switch (type) + { + case DiskResource: + case FileResource: + case MapResource: + case MemoryResource: + case TimeResource: + { + UnlockSemaphoreInfo(resource_semaphore[type]); + break; + } + default: ; + } return(resource); } @@ -922,24 +970,24 @@ MagickExport void RelinquishMagickResource(const ResourceType type, current, limit; + bi=MagickFalse; + limit=0; + current=0; switch (type) { - case AreaResource: - case HeightResource: - case ListLengthResource: - case ThreadResource: - case ThrottleResource: - case WidthResource: - return; - default: + case DiskResource: + case FileResource: + case MapResource: + case MemoryResource: + case TimeResource: + { + if (resource_semaphore[type] == (SemaphoreInfo *) NULL) + ActivateSemaphoreInfo(&resource_semaphore[type]); + LockSemaphoreInfo(resource_semaphore[type]); break; + } + default: ; } - bi=MagickFalse; - limit=0; - current=0; - if (resource_semaphore[type] == (SemaphoreInfo *) NULL) - ActivateSemaphoreInfo(&resource_semaphore[type]); - LockSemaphoreInfo(resource_semaphore[type]); switch (type) { case DiskResource: @@ -992,7 +1040,19 @@ MagickExport void RelinquishMagickResource(const ResourceType type, break; } } - UnlockSemaphoreInfo(resource_semaphore[type]); + switch (type) + { + case DiskResource: + case FileResource: + case MapResource: + case MemoryResource: + case TimeResource: + { + UnlockSemaphoreInfo(resource_semaphore[type]); + break; + } + default: ; + } if (IsEventLogging() != MagickFalse) { char -- 2.40.0