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();
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;