18 #ifndef MAGICKCORE_THREAD_PRIVATE_H 19 #define MAGICKCORE_THREAD_PRIVATE_H 26 #if defined(__cplusplus) || defined(c_plusplus) 34 #define magick_number_threads(source,destination,chunk,multithreaded) \ 35 num_threads((multithreaded) == 0 ? 1 : \ 36 ((GetImagePixelCacheType(source) != MemoryCache) && \ 37 (GetImagePixelCacheType(source) != MapCache)) || \ 38 ((GetImagePixelCacheType(destination) != MemoryCache) && \ 39 (GetImagePixelCacheType(destination) != MapCache)) ? \ 40 MagickMax(MagickMin(GetMagickResourceLimit(ThreadResource),2),1) : \ 41 MagickMax(MagickMin((ssize_t) GetMagickResourceLimit(ThreadResource),(ssize_t) (chunk)/64),1)) 43 #if defined(__clang__) || (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ > 10)) 44 #define MagickCachePrefetch(address,mode,locality) \ 45 __builtin_prefetch(address,mode,locality) 47 #define MagickCachePrefetch(address,mode,locality) 50 #if defined(MAGICKCORE_THREAD_SUPPORT) 52 #elif defined(MAGICKCORE_WINDOWS_SUPPORT) 60 #if defined(MAGICKCORE_THREAD_SUPPORT) 62 #elif defined(MAGICKCORE_WINDOWS_SUPPORT) 63 return(GetCurrentThreadId());
71 #if defined(MAGICKCORE_THREAD_SUPPORT) 82 magick_thread.signature=0UL;
84 return(magick_thread.signature);
86 #elif defined(MAGICKCORE_WINDOWS_SUPPORT) 87 return((
size_t) GetCurrentThreadId());
89 return((
size_t) getpid());
95 #if defined(MAGICKCORE_THREAD_SUPPORT) 98 #elif defined(MAGICKCORE_WINDOWS_SUPPORT) 99 if (
id == GetCurrentThreadId())
113 #if defined(MAGICKCORE_OPENMP_SUPPORT) 114 return(omp_get_max_threads());
122 #if defined(MAGICKCORE_OPENMP_SUPPORT) 123 return(omp_get_thread_num());
131 #if defined(MAGICKCORE_OPENMP_SUPPORT) 132 omp_set_num_threads(threads);
140 #if defined(MAGICKCORE_OPENMP_SUPPORT) 141 omp_set_nested(value);
147 #if defined(__cplusplus) || defined(c_plusplus) static MagickThreadType GetMagickThreadId(void)
Definition: thread-private.h:58
static size_t GetOpenMPMaximumThreads(void)
Definition: thread-private.h:111
#define pthread_self
Definition: vms.h:836
static MagickBooleanType IsMagickThreadEqual(const MagickThreadType id)
Definition: thread-private.h:93
size_t MagickMutexType
Definition: thread-private.h:55
static void SetOpenMPMaximumThreads(const int threads)
Definition: thread-private.h:129
MagickBooleanType
Definition: magick-type.h:189
pid_t MagickThreadType
Definition: thread_.h:34
static int GetOpenMPThreadId(void)
Definition: thread-private.h:120
Definition: magick-type.h:192
static void SetOpenMPNested(const int value)
Definition: thread-private.h:138
Definition: magick-type.h:191
static size_t GetMagickThreadSignature(void)
Definition: thread-private.h:69
#define pthread_equal
Definition: vms.h:802