56 (*destructor)(
void *);
85 void (*destructor)(
void *))
87 #if defined(MAGICKCORE_THREAD_SUPPORT) 89 #elif defined(MAGICKCORE_WINDOWS_SUPPORT) 105 if ((*keys)->values == (
void *) NULL)
108 (
void) memset((*keys)->values,0,(*keys)->number_threads*
110 (*keys)->destructor=destructor;
141 #if defined(MAGICKCORE_THREAD_SUPPORT) 143 #elif defined(MAGICKCORE_WINDOWS_SUPPORT) 156 (keys->
values[i] != (
void *) NULL))
159 keys->
values[i]=(
void *) NULL;
192 #if defined(MAGICKCORE_THREAD_SUPPORT) 194 #elif defined(MAGICKCORE_WINDOWS_SUPPORT) 195 return(TlsGetValue(key));
236 #if defined(MAGICKCORE_THREAD_SUPPORT) 238 #elif defined(MAGICKCORE_WINDOWS_SUPPORT)
#define pthread_key_create
#define pthread_key_delete
static size_t GetOpenMPMaximumThreads(void)
#define pthread_getspecific
struct _MagickThreadValue MagickThreadValue
void(* destructor)(void *)
MagickExport void * AcquireQuantumMemory(const size_t count, const size_t quantum)
static int GetOpenMPThreadId(void)
MagickExport MagickBooleanType CreateMagickThreadKey(MagickThreadKey *key, void(*destructor)(void *))
#define pthread_setspecific
MagickExport void * GetMagickThreadValue(MagickThreadKey key)
MagickExport MagickBooleanType SetMagickThreadValue(MagickThreadKey key, const void *value)
MagickExport void * AcquireMagickMemory(const size_t size)
MagickExport MagickBooleanType DeleteMagickThreadKey(MagickThreadKey key)
MagickExport void * RelinquishMagickMemory(void *memory)
#define magick_unreferenced(x)