18 #ifndef _MAGICKCORE_THREAD_PRIVATE_H
19 #define _MAGICKCORE_THREAD_PRIVATE_H
21 #if defined(__cplusplus) || defined(c_plusplus)
32 #define magick_threads(source,destination,chunk,expression) \
33 num_threads((expression) == 0 ? 1 : \
34 (((chunk) > (16*GetMagickResourceLimit(ThreadResource))) && \
35 (GetImagePixelCacheType(source) != DiskCache)) && \
36 (GetImagePixelCacheType(destination) != DiskCache) ? \
37 GetMagickResourceLimit(ThreadResource) : \
38 GetMagickResourceLimit(ThreadResource) < 2 ? 1 : 2)
40 #if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ > 10))
41 #define MagickCachePrefetch(address,mode,locality) \
42 __builtin_prefetch(address,mode,locality)
44 #define MagickCachePrefetch(address,mode,locality)
47 #if defined(MAGICKCORE_THREAD_SUPPORT)
49 #elif defined(MAGICKCORE_WINDOWS_SUPPORT)
57 #if defined(MAGICKCORE_THREAD_SUPPORT)
59 #elif defined(MAGICKCORE_WINDOWS_SUPPORT)
60 return(GetCurrentThreadId());
68 #if defined(MAGICKCORE_THREAD_SUPPORT)
79 magick_thread.signature=0UL;
81 return(magick_thread.signature);
83 #elif defined(MAGICKCORE_WINDOWS_SUPPORT)
84 return((
size_t) GetCurrentThreadId());
86 return((
size_t) getpid());
92 #if defined(MAGICKCORE_THREAD_SUPPORT)
95 #elif defined(MAGICKCORE_WINDOWS_SUPPORT)
96 if (
id == GetCurrentThreadId())
110 #if defined(MAGICKCORE_OPENMP_SUPPORT)
111 return(omp_get_max_threads());
118 #if defined(MAGICKCORE_OPENMP_SUPPORT)
119 return(omp_get_thread_num());
127 #if defined(MAGICKCORE_OPENMP_SUPPORT)
128 omp_set_num_threads(threads);
136 #if defined(MAGICKCORE_OPENMP_SUPPORT)
137 omp_set_nested(value);
143 #if defined(__cplusplus) || defined(c_plusplus)