]> granicus.if.org Git - imagemagick/blobdiff - MagickCore/thread-private.h
(no commit message)
[imagemagick] / MagickCore / thread-private.h
index 7496eeb7f1eee251f81f83a1f69536df58e6dfc6..a1310daa6a21d06ff828016ac60a8fe7eae0743e 100644 (file)
 extern "C" {
 #endif
 
+#include <MagickCore/cache.h>
 #include <MagickCore/resource_.h>
 #include <MagickCore/thread_.h>
 
 /*
   Single threaded unless workload justifies the threading overhead.
 */
-#define MinimumWorkLoad()  (16*GetMagickResourceLimit(ThreadResource))
-#define dynamic_number_threads(columns,rows,expression) \
-  if (((((columns) > MinimumWorkLoad()) || \
-      ((rows) > MinimumWorkLoad()))) && ((MagickSizeType) \
-      ((columns)*(rows)) > (MinimumWorkLoad()*MinimumWorkLoad())) && \
-      (expression)) \
+#define WorkloadThreshold()  (16*GetMagickResourceLimit(ThreadResource))
+#define dynamic_number_threads(image,columns,rows,expression) \
+  if (((((columns) > WorkloadThreshold()) || \
+      ((rows) > WorkloadThreshold()))) && ((MagickSizeType) \
+      ((columns)*(rows)) > (WorkloadThreshold()*WorkloadThreshold())) && \
+      (GetImagePixelCacheType(image) != DiskCache) && (expression)) \
     num_threads(GetMagickResourceLimit(ThreadResource))
 
-#if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR > 10))
+#if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ > 10))
 #define MagickCachePrefetch(address,mode,locality) \
   __builtin_prefetch(address,mode,locality)
 #else