]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sat, 27 Oct 2012 23:07:47 +0000 (23:07 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sat, 27 Oct 2012 23:07:47 +0000 (23:07 +0000)
MagickCore/cache-view.c
MagickCore/cache.c

index 00fef6ae8d649c3534e6189dfea00918c46c3f57..443f87974afc8dafdb1e025d923fcfb6121e2c05 100644 (file)
@@ -167,7 +167,11 @@ 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();
+  if (GetMagickResourceLimit(ThreadResource) > cache_view->number_threads)
+    cache_view->number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
+  if (cache_view->number_threads == 0)
+    cache_view->number_threads=1;
   cache_view->nexus_info=AcquirePixelCacheNexus(cache_view->number_threads);
   cache_view->virtual_pixel_method=GetImageVirtualPixelMethod(image);
   cache_view->debug=IsEventLogging();
index 92ec430af81c66838ad1a5ab564b6704da8af442..7bd50bd683e16b1c356108de251122d768a0cc29 100644 (file)
@@ -202,7 +202,9 @@ MagickPrivate Cache AcquirePixelCache(const size_t number_threads)
   cache_info->file=(-1);
   cache_info->id=GetMagickThreadId();
   cache_info->number_threads=number_threads;
-  if (cache_info->number_threads == 0)
+  if (GetOpenMPMaximumThreads() > cache_info->number_threads)
+    cache_info->number_threads=GetOpenMPMaximumThreads();
+  if (GetMagickResourceLimit(ThreadResource) > cache_info->number_threads)
     cache_info->number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
   if (cache_info->number_threads == 0)
     cache_info->number_threads=1;