Branch : - branch - master - tag - release-1.1b release-1.4.0-beta release-1.4.1-beta release-1.4.10-stable release-1.4.11-stable release-1.4.12-stable release-1.4.13-stable release-1.4.14-stable release-1.4.14b-stable release-1.4.15-stable release-1.4.2-rc release-1.4.3-stable release-1.4.4-stable release-1.4.5-stable release-1.4.6 release-1.4.7-stable release-1.4.8-stable release-1.4.9-stable release-2.0.1-alpha release-2.0.10-stable release-2.0.11-stable release-2.0.12-stable release-2.0.13-stable release-2.0.14-stable release-2.0.15-stable release-2.0.16-stable release-2.0.17-stable release-2.0.18-stable release-2.0.19-stable release-2.0.20-stable release-2.0.21-stable release-2.0.22-stable release-2.0.23-beta release-2.0.3-alpha release-2.0.4-alpha release-2.0.5-beta release-2.0.6-rc release-2.0.7-rc release-2.0.8-rc release-2.0.9-rc release-2.1.1-alpha release-2.1.10-stable release-2.1.11-stable release-2.1.12-stable release-2.1.2-alpha release-2.1.3-alpha release-2.1.4-alpha release-2.1.5-beta release-2.1.6-beta release-2.1.7-rc release-2.1.8-stable release-2.1.9-beta release-2.2.1-alpha
#ifdef HAVE_CONFIG_H #include "event-config.h" #endif #ifdef WIN32 #include <winsock2.h> #define WIN32_LEAN_AND_MEAN #include <windows.h> #undef WIN32_LEAN_AND_MEAN #endif struct event_base; #include <event2/thread.h> static void * evthread_win32_lock_create(void) { CRITICAL_SECTION *lock = mm_malloc(sizeof(CRITICAL_SECTION)); if (!lock) return NULL; InitializeCriticalSection(lock); return lock; } static void evthread_win32_lock_free(void *_lock) { CRITICAL_SECTION *lock = _lock; DeleteCriticalSection(lock); } static void evthread_win32_lock(int mode, void *_lock) { CRITICAL_SECTION *lock = _lock; if (0 != (mode & EVTHREAD_LOCK)) EnterCriticalSection(lock); else LeaveCriticalSection(lock); } static unsigned long evthread_win32_get_id(void) { return (unsigned long) GetCurrentThreadId(); } int evthread_use_windows_threads(struct event_base *base) { evthread_set_lock_create_callbacks(base, evthread_win32_lock_create, evthread_win32_lock_free); evthread_set_locking_callback(base, evthread_win32_lock); evthread_set_id_callback(base, evthread_win32_get_id); return 0; }