tile_width=image->columns;
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static,4) \
- magick_threads(image,image,image->rows/tile_height,1)
+ magick_threads(image,image,1,1)
#endif
for (tile_y=0; tile_y < (ssize_t) image->rows; tile_y+=(ssize_t) tile_height)
{
#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp parallel for schedule(static,4) \
magick_threads(image,image,1,1)
+#endif
+ for (tile_y=0; tile_y < (ssize_t) image->rows; tile_y+=(ssize_t) tile_height)
+ {
+ register ssize_t
+ tile_x;
+
+ if (status == MagickFalse)
+ continue;
+ tile_x=0;
+ for ( ; tile_x < (ssize_t) image->columns; tile_x+=(ssize_t) tile_width)
+ {
+ MagickBooleanType
+ sync;
+
+ register const Quantum
+ *restrict p;
+
+ register Quantum
+ *restrict q;
+
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
/*
Single threaded unless workload justifies the threading overhead.
*/
-#define WorkloadThreshold() (16*GetMagickResourceLimit(ThreadResource))
#define magick_threads(source,destination,chunk,expression) \
- num_threads((expression) == 0 ? 1 : ((chunk) > WorkloadThreshold()) && \
- (GetImagePixelCacheType(source) != DiskCache) && \
+ num_threads((expression) == 0 ? 1 : \
+ ((chunk) > (16*GetMagickResourceLimit(ThreadResource))) && \
+ (GetImagePixelCacheType(source) != DiskCache) && \
(GetImagePixelCacheType(destination) != DiskCache) ? \
- GetMagickResourceLimit(ThreadResource) : \
- GetMagickResourceLimit(ThreadResource) < 2 ? 1 : 2)
+ GetMagickResourceLimit(ThreadResource) : \
+ GetMagickResourceLimit(ThreadResource) < 2 ? 1 : 2)
#if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ > 10))
#define MagickCachePrefetch(address,mode,locality) \