1 #ifndef HEADER_CURL_THREADS_H 2 #define HEADER_CURL_THREADS_H 26 #if defined(USE_THREADS_POSIX) 28 # define curl_mutex_t pthread_mutex_t 29 # define curl_thread_t pthread_t * 30 # define curl_thread_t_null (pthread_t *)0 31 # define Curl_mutex_init(m) pthread_mutex_init(m, NULL) 32 # define Curl_mutex_acquire(m) pthread_mutex_lock(m) 33 # define Curl_mutex_release(m) pthread_mutex_unlock(m) 34 # define Curl_mutex_destroy(m) pthread_mutex_destroy(m) 35 #elif defined(USE_THREADS_WIN32) 36 # define CURL_STDCALL __stdcall 37 # define curl_mutex_t CRITICAL_SECTION 38 # define curl_thread_t HANDLE 39 # define curl_thread_t_null (HANDLE)0 40 # if !defined(_WIN32_WINNT) || !defined(_WIN32_WINNT_VISTA) || \ 41 (_WIN32_WINNT < _WIN32_WINNT_VISTA) 42 # define Curl_mutex_init(m) InitializeCriticalSection(m) 44 # define Curl_mutex_init(m) InitializeCriticalSectionEx(m, 0, 1) 46 # define Curl_mutex_acquire(m) EnterCriticalSection(m) 47 # define Curl_mutex_release(m) LeaveCriticalSection(m) 48 # define Curl_mutex_destroy(m) DeleteCriticalSection(m) 51 #if defined(USE_THREADS_POSIX) || defined(USE_THREADS_WIN32) 54 curl_thread_t Curl_thread_create(
unsigned int (CURL_STDCALL *func) (
void *),
57 void Curl_thread_destroy(curl_thread_t
hnd);
59 int Curl_thread_join(curl_thread_t *
hnd);