]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Wed, 9 May 2012 16:32:12 +0000 (16:32 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Wed, 9 May 2012 16:32:12 +0000 (16:32 +0000)
14 files changed:
MagickCore/attribute.c
MagickCore/cache-view.c
MagickCore/cache.c
MagickCore/draw.c
MagickCore/fx.c
MagickCore/paint.c
MagickCore/profile.c
MagickCore/quantize.c
MagickCore/quantum.c
MagickCore/resize.c
MagickCore/resource.c
MagickCore/statistic.c
MagickWand/mogrify.c
MagickWand/wand-view.c

index 668abd88d14a8dd21b23d25140c2716427769c83..227645bb40586660d5ddfb9ad2ba7c61cccd2324 100644 (file)
@@ -291,7 +291,7 @@ MagickExport size_t GetImageDepth(const Image *image,ExceptionInfo *exception)
   assert(image->signature == MagickSignature);
   if (image->debug != MagickFalse)
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-  number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
+  number_threads=GetOpenMPMaximumThreads();
   current_depth=(size_t *) AcquireQuantumMemory(number_threads,
     sizeof(*current_depth));
   if (current_depth == (size_t *) NULL)
index e51b4af32c09ce901d77cdcd5b450a06cc394ca9..5127bdb89e479e17d582b3cc435ce7687b4eddf3 100644 (file)
@@ -165,7 +165,7 @@ MagickExport CacheView *AcquireVirtualCacheView(const Image *image,
     ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
   (void) ResetMagickMemory(cache_view,0,sizeof(*cache_view));
   cache_view->image=ReferenceImage((Image *) image);
-  cache_view->number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
+  cache_view->number_threads=GetOpenMPMaximumThreads();
   cache_view->nexus_info=AcquirePixelCacheNexus(cache_view->number_threads);
   cache_view->virtual_pixel_method=GetImageVirtualPixelMethod(image);
   cache_view->debug=IsEventLogging();
index 7c63ea25730ef6da8a8228e1c544f0cb9e1958c4..cc30124d5f9d163ab654494bef3cac5568e25861 100644 (file)
@@ -201,7 +201,7 @@ MagickPrivate Cache AcquirePixelCache(const size_t number_threads)
   cache_info->id=GetMagickThreadId();
   cache_info->number_threads=number_threads;
   if (number_threads == 0)
-    cache_info->number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
+    cache_info->number_threads=GetOpenMPMaximumThreads();
   cache_info->nexus_info=AcquirePixelCacheNexus(cache_info->number_threads);
   if (cache_info->nexus_info == (NexusInfo **) NULL)
     ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
index 53d40a32feb1d794e2ce8795e168a71b4f598511..024a20e9d6e30caec14e4984743802a37065a5f5 100644 (file)
@@ -3589,7 +3589,7 @@ static PolygonInfo **AcquirePolygonThreadSet(const DrawInfo *draw_info,
   size_t
     number_threads;
 
-  number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
+  number_threads=GetOpenMPMaximumThreads();
   polygon_info=(PolygonInfo **) AcquireQuantumMemory(number_threads,
     sizeof(*polygon_info));
   if (polygon_info == (PolygonInfo **) NULL)
index e49ec760943595adb3744ee65c30bf9740c2b9f0..971524d21842d633911cbf8d48e869bb2f265c1b 100644 (file)
@@ -2963,7 +2963,7 @@ static FxInfo **AcquireFxThreadSet(const Image *image,const char *expression,
   size_t
     number_threads;
 
-  number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
+  number_threads=GetOpenMPMaximumThreads();
   fx_info=(FxInfo **) AcquireQuantumMemory(number_threads,sizeof(*fx_info));
   if (fx_info == (FxInfo **) NULL)
     return((FxInfo **) NULL);
index 6ef6723b0abe4704dd52c8c918e0a7485f3af158..cf0299dcaa61a25e372a47207310334a773fc1ae 100644 (file)
@@ -516,7 +516,7 @@ static size_t **AcquireHistogramThreadSet(const size_t count)
     **histogram,
     number_threads;
 
-  number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
+  number_threads=GetOpenMPMaximumThreads();
   histogram=(size_t **) AcquireQuantumMemory(number_threads,sizeof(*histogram));
   if (histogram == (size_t **) NULL)
     return((size_t **) NULL);
index 7a64bd364f4d57d7d714e513cda794bb48375f28..ffb97197520b545a1b12a4f34191d1c8d99acb8f 100644 (file)
@@ -377,7 +377,7 @@ static unsigned short **AcquirePixelThreadSet(const size_t columns,
   size_t
     number_threads;
 
-  number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
+  number_threads=GetOpenMPMaximumThreads();
   pixels=(unsigned short **) AcquireQuantumMemory(number_threads,
     sizeof(*pixels));
   if (pixels == (unsigned short **) NULL)
@@ -420,7 +420,7 @@ static cmsHTRANSFORM *AcquireTransformThreadSet(Image *image,
   size_t
     number_threads;
 
-  number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
+  number_threads=GetOpenMPMaximumThreads();
   transform=(cmsHTRANSFORM *) AcquireQuantumMemory(number_threads,
     sizeof(*transform));
   if (transform == (cmsHTRANSFORM *) NULL)
index 29a1c1d68d3910dc91b1aeca04818718f7bff923..71dbdb2a67521ad9716eb3f7170acd7b5bea292d 100644 (file)
@@ -1437,7 +1437,7 @@ static RealPixelInfo **AcquirePixelThreadSet(const size_t count)
   size_t
     number_threads;
 
-  number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
+  number_threads=GetOpenMPMaximumThreads();
   pixels=(RealPixelInfo **) AcquireQuantumMemory(number_threads,
     sizeof(*pixels));
   if (pixels == (RealPixelInfo **) NULL)
index ba0ddf8c91c556b54702c489ebb517c621d0ebeb..223f2eee8adcb231a381e28d09b3ae0690bfe519 100644 (file)
@@ -168,7 +168,7 @@ static MagickBooleanType AcquireQuantumPixels(QuantumInfo *quantum_info,
 
   assert(quantum_info != (QuantumInfo *) NULL);
   assert(quantum_info->signature == MagickSignature);
-  quantum_info->number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
+  quantum_info->number_threads=GetOpenMPMaximumThreads();
   quantum_info->pixels=(unsigned char **) AcquireQuantumMemory(
     quantum_info->number_threads,sizeof(*quantum_info->pixels));
   if (quantum_info->pixels == (unsigned char **) NULL)
index 4e19accd7db743d38bff5e0dc5ba1054fa77804f..4c165b14c91c16fe1007ce99ab7709667e5c036b 100644 (file)
@@ -2129,7 +2129,7 @@ static ContributionInfo **AcquireContributionThreadSet(const size_t count)
   size_t
     number_threads;
 
-  number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
+  number_threads=GetOpenMPMaximumThreads();
   contribution=(ContributionInfo **) AcquireQuantumMemory(number_threads,
     sizeof(*contribution));
   if (contribution == (ContributionInfo **) NULL)
index 0e6af9da698de8f2e5683caa0064426ecdefbc81..17cdcc0ac103f6b716a9772d1bc49bab013b8198 100644 (file)
@@ -233,7 +233,6 @@ MagickExport MagickBooleanType AcquireMagickResource(const ResourceType type,
     }
     case ThreadResource:
     {
-      resource_info.thread+=size;
       limit=resource_info.thread_limit;
       status=(resource_info.thread_limit == MagickResourceInfinity) ||
         ((MagickSizeType) resource_info.thread < limit) ?
@@ -791,7 +790,6 @@ MagickExport void RelinquishMagickResource(const ResourceType type,
     }
     case ThreadResource:
     {
-      resource_info.thread-=size;
       (void) FormatMagickSize((MagickSizeType) resource_info.thread,MagickFalse,
         resource_current);
       (void) FormatMagickSize((MagickSizeType) resource_info.thread_limit,
@@ -1146,6 +1144,8 @@ MagickExport MagickBooleanType SetMagickResourceLimit(const ResourceType type,
       if (value != (char *) NULL)
         resource_info.thread_limit=MagickMin(limit,StringToSizeType(value,
           100.0));
+      if (resource_info.thread_limit > GetOpenMPMaximumThreads())
+        resource_info.thread_limit=GetOpenMPMaximumThreads();
       break;
     }
     case TimeResource:
index 7d0ef38b9ef6df3ee6a7c7bfd174b7b2370aa7bc..c844b97d75b027951349b35d3b56a5a677524f1a 100644 (file)
@@ -161,7 +161,7 @@ static PixelChannels **AcquirePixelThreadSet(const Image *image,
     length,
     number_threads;
 
-  number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
+  number_threads=GetOpenMPMaximumThreads();
   pixels=(PixelChannels **) AcquireQuantumMemory(number_threads,
     sizeof(*pixels));
   if (pixels == (PixelChannels **) NULL)
@@ -1855,7 +1855,7 @@ static PixelList **AcquirePixelListThreadSet(const size_t width,
   size_t
     number_threads;
 
-  number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
+  number_threads=GetOpenMPMaximumThreads();
   pixel_list=(PixelList **) AcquireQuantumMemory(number_threads,
     sizeof(*pixel_list));
   if (pixel_list == (PixelList **) NULL)
index 644a0603bde9c6fab4a505f4aefbc5487b080e8f..fa62dae972778bd3f279730cf236874f1fb60fb9 100644 (file)
@@ -175,7 +175,7 @@ WandExport MagickBooleanType MagickCommandGenesis(ImageInfo *image_info,
           }
       return(status);
     }
-  number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
+  number_threads=GetOpenMPMaximumThreads();
   serial=0.0;
   for (n=1; n <= (ssize_t) number_threads; n++)
   {
index c49b439eb0af1e0a2014d291188308cf26fdcda1..bd8e48310a4af8b4861c294eadd9147814f5e8ec 100644 (file)
@@ -725,7 +725,7 @@ static PixelWand ***AcquirePixelsThreadSet(const size_t number_wands)
   size_t
     number_threads;
 
-  number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
+  number_threads=GetOpenMPMaximumThreads();
   pixel_wands=(PixelWand ***) AcquireQuantumMemory(number_threads,
     sizeof(*pixel_wands));
   if (pixel_wands == (PixelWand ***) NULL)