#ifndef _MAGICKCORE_THREAD_H
#define _MAGICKCORE_THREAD_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#if defined(MAGICKCORE_WINDOWS_SUPPORT)
#include <intsafe.h>
#endif
#if defined(MAGICKCORE_THREAD_SUPPORT)
typedef pthread_t MagickThreadType;
#elif defined(MAGICKCORE_WINDOWS_SUPPORT)
typedef DWORD MagickThreadType;
#else
typedef pid_t MagickThreadType;
#endif
#if defined(MAGICKCORE_THREAD_SUPPORT)
typedef pthread_key_t MagickThreadKey;
#elif defined(MAGICKCORE_WINDOWS_SUPPORT)
typedef DWORD MagickThreadKey;
#else
typedef void *MagickThreadKey;
#endif
extern MagickExport MagickBooleanType
CreateMagickThreadKey(MagickThreadKey *,void (*destructor)(void *)),
DeleteMagickThreadKey(MagickThreadKey),
SetMagickThreadValue(MagickThreadKey,const void *);
extern MagickExport void
*GetMagickThreadValue(MagickThreadKey);
extern MagickExport MagickBooleanType
MagickCreateThreadKey(MagickThreadKey *),
MagickDeleteThreadKey(MagickThreadKey),
MagickSetThreadValue(MagickThreadKey,const void *);
extern MagickExport void
*MagickGetThreadValue(MagickThreadKey);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif