From 398f932e1cbd26bd254007a8fcbe0b7152a96767 Mon Sep 17 00:00:00 2001 From: cristy Date: Fri, 11 Sep 2009 18:49:48 +0000 Subject: [PATCH] --- ChangeLog | 6 ++++++ magick/image.c | 4 +++- magick/thread-private.h | 9 ++++++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index fe8642bfa..10b4c1bee 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-09-11 6.5.5-10 Cristy + * Return the global maximum threads to avoid the rare cache view assertions. + +2009-09-10 6.5.5-9 Cristy + * Do not include last line of text in the interline spacing computation. + 2009-09-07 6.5.5-8 Cristy * Check that quantum_info is defined before destroying it in the PNG coder. * Add -interline-spacing option to convert. diff --git a/magick/image.c b/magick/image.c index 35e1a9cf1..01f4f7f93 100644 --- a/magick/image.c +++ b/magick/image.c @@ -779,6 +779,7 @@ MagickExport Image *AverageImages(const Image *image,ExceptionInfo *exception) register long i, + id, x; register MagickPixelPacket @@ -798,7 +799,8 @@ MagickExport Image *AverageImages(const Image *image,ExceptionInfo *exception) } average_indexes=GetCacheViewAuthenticIndexQueue(average_view); pixel=zero; - average_pixel=average_pixels[GetOpenMPThreadId()]; + id=GetOpenMPThreadId(); + average_pixel=average_pixels[id]; for (x=0; x < (long) average_image->columns; x++) average_pixel[x]=zero; next=image; diff --git a/magick/thread-private.h b/magick/thread-private.h index 2bec78466..5ae3dbeb4 100644 --- a/magick/thread-private.h +++ b/magick/thread-private.h @@ -88,7 +88,14 @@ static inline MagickBooleanType IsMagickThreadEqual(const MagickThreadType id) static inline unsigned long GetOpenMPMaximumThreads(void) { #if defined(MAGICKCORE_OPENMP_SUPPORT) - return((unsigned long) omp_get_max_threads()); + { + static unsigned long + maximum_threads = 1UL; + + if (omp_get_max_threads() > (long) maximum_threads) + maximum_threads=omp_get_max_threads(); + return(maximum_threads); + } #endif return(1UL); } -- 2.40.0