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() (32*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