X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fthreads.h;h=85aaced7ecc843f5cdf0b2c998660ab22a979139;hb=6834b882015a9323672e9fce8811aa4283f196f0;hp=3243907d5d52c3c36114edcf75a13085584fe3b9;hpb=9e00aaa5be9c92f1cee93bca3f0e473009cc3541;p=tinc diff --git a/src/threads.h b/src/threads.h index 3243907d..85aaced7 100644 --- a/src/threads.h +++ b/src/threads.h @@ -1,11 +1,6 @@ #ifndef __THREADS_H__ #define __THREADS_H__ -typedef struct event { - int foo; -} event_t; - - #ifdef HAVE_MINGW typedef HANDLE thread_t; typedef CRITICAL_SECTION mutex_t; @@ -33,15 +28,20 @@ static inline void mutex_unlock(mutex_t *mutex) { typedef pthread_t thread_t; typedef pthread_mutex_t mutex_t; -static inline void thread_create(thread_t *tid, void (*func)(void *), void *arg) { +static inline bool thread_create(thread_t *tid, void (*func)(void *), void *arg) { return !pthread_create(tid, NULL, (void *(*)(void *))func, arg); } static inline void thread_destroy(thread_t *tid) { - pthread_join(tid); + pthread_cancel(*tid); + pthread_join(*tid, NULL); } static inline void mutex_create(mutex_t *mutex) { pthread_mutex_init(mutex, NULL); } +#if 1 +#define mutex_lock(m) logger(LOG_DEBUG, "mutex_lock() at " __FILE__ " line %d", __LINE__); pthread_mutex_lock(m) +#define mutex_unlock(m) logger(LOG_DEBUG, "mutex_unlock() at " __FILE__ " line %d", __LINE__); pthread_mutex_unlock(m) +#else static inline void mutex_lock(mutex_t *mutex) { pthread_mutex_lock(mutex); } @@ -49,5 +49,6 @@ static inline void mutex_unlock(mutex_t *mutex) { pthread_mutex_unlock(mutex); } #endif +#endif #endif