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 #include <pthread.h> struct event_base; #include <event2/thread.h> #include "mm-internal.h" static void * evthread_posix_lock_create(void) { pthread_mutex_t *lock = mm_malloc(sizeof(pthread_mutex_t)); if (!lock) return NULL; pthread_mutex_init(lock, NULL); return lock; } static void evthread_posix_lock_free(void *_lock) { pthread_mutex_t *lock = _lock; pthread_mutex_destroy(lock); mm_free(lock); } static void evthread_posix_lock(int mode, void *_lock) { pthread_mutex_t *lock = _lock; if (0 != (mode & EVTHREAD_LOCK)) pthread_mutex_lock(lock); else pthread_mutex_unlock(lock); } static unsigned long evthread_posix_get_id(void) { union { pthread_t thr; unsigned long id; } r; r.thr = pthread_self(); return r.id; } int evthread_use_pthreads(struct event_base *base) { evthread_set_lock_create_callbacks(base, evthread_posix_lock_create, evthread_posix_lock_free); evthread_set_locking_callback(base, evthread_posix_lock); evthread_set_id_callback(base, evthread_posix_get_id); return -1; }