18 #ifndef MAGICKCORE_THREAD_PRIVATE_H
19 #define MAGICKCORE_THREAD_PRIVATE_H
26 #if defined(__cplusplus) || defined(c_plusplus)
30 #define magick_number_threads(source,destination,chunk,multithreaded) \
31 num_threads(GetMagickNumberThreads(source,destination,chunk,multithreaded))
32 #if defined(__clang__) || (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ > 10))
33 #define MagickCachePrefetch(address,mode,locality) \
34 __builtin_prefetch(address,mode,locality)
36 #define MagickCachePrefetch(address,mode,locality)
39 #if defined(MAGICKCORE_THREAD_SUPPORT)
41 #elif defined(MAGICKCORE_WINDOWS_SUPPORT)
49 #if defined(MAGICKCORE_THREAD_SUPPORT)
51 #elif defined(MAGICKCORE_WINDOWS_SUPPORT)
52 return(GetCurrentThreadId());
59 const Image *destination,
const size_t chunk,
int multithreaded)
71 if (multithreaded == 0)
84 #if defined(MAGICKCORE_THREAD_SUPPORT)
95 magick_thread.signature=0UL;
97 return(magick_thread.signature);
99 #elif defined(MAGICKCORE_WINDOWS_SUPPORT)
100 return((
size_t) GetCurrentThreadId());
102 return((
size_t) getpid());
108 #if defined(MAGICKCORE_THREAD_SUPPORT)
111 #elif defined(MAGICKCORE_WINDOWS_SUPPORT)
112 if (
id == GetCurrentThreadId())
126 #if defined(MAGICKCORE_OPENMP_SUPPORT)
127 return(omp_get_max_threads());
135 #if defined(MAGICKCORE_OPENMP_SUPPORT)
136 return(omp_get_thread_num());
144 #if defined(MAGICKCORE_OPENMP_SUPPORT)
145 omp_set_num_threads(threads);
153 #if defined(MAGICKCORE_OPENMP_SUPPORT)
154 omp_set_nested(value);
160 #if defined(__cplusplus) || defined(c_plusplus)
static int GetMagickNumberThreads(const Image *source, const Image *destination, const size_t chunk, int multithreaded)
Definition: thread-private.h:58
static MagickThreadType GetMagickThreadId(void)
Definition: thread-private.h:47
static size_t GetOpenMPMaximumThreads(void)
Definition: thread-private.h:124
#define pthread_self
Definition: vms.h:836
static MagickBooleanType IsMagickThreadEqual(const MagickThreadType id)
Definition: thread-private.h:106
size_t MagickMutexType
Definition: thread-private.h:44
static void SetOpenMPMaximumThreads(const int threads)
Definition: thread-private.h:142
MagickBooleanType
Definition: magick-type.h:198
pid_t MagickThreadType
Definition: thread_.h:34
static int GetOpenMPThreadId(void)
Definition: thread-private.h:133
Definition: magick-type.h:201
MagickExport MagickSizeType GetMagickResourceLimit(const ResourceType type)
Definition: resource.c:842
#define MagickMax(x, y)
Definition: image-private.h:36
static void SetOpenMPNested(const int value)
Definition: thread-private.h:151
Definition: magick-type.h:200
Definition: resource_.h:33
CacheType
Definition: cache.h:27
MagickExport CacheType GetImagePixelCacheType(const Image *image)
Definition: cache.c:1977
#define MagickMin(x, y)
Definition: image-private.h:37
static size_t GetMagickThreadSignature(void)
Definition: thread-private.h:82
#define pthread_equal
Definition: vms.h:802