X-Git-Url: http://git.pk910.de/?p=ChatPrototype.git;a=blobdiff_plain;f=src%2FIOEngine.h;h=f64078e83d4733587632f905509b5d2a800fcd99;hp=e331ce8457323a1f6957299ef2221f70d3ffb851;hb=63fe80b57c7ff27b24900174fe3621f458135a11;hpb=95e17dcb3ada7fc8ea8a63bb922819b10e2de2e1 diff --git a/src/IOEngine.h b/src/IOEngine.h index e331ce8..f64078e 100644 --- a/src/IOEngine.h +++ b/src/IOEngine.h @@ -18,6 +18,22 @@ #define _IOEngine_h #include "IOHandler.h" +#ifdef HAVE_PTHREAD_H +#include +#define IOTHREAD_MUTEX_INIT(var) { \ + pthread_mutexattr_t mutex_attr; \ + pthread_mutexattr_init(&mutex_attr);\ + pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_RECURSIVE_NP);\ + pthread_mutex_init(&var, &mutex_attr); \ +} +#define IOSYNCHRONIZE(var) pthread_mutex_lock(&var) +#define IODESYNCHRONIZE(var) pthread_mutex_unlock(&var) +#else +#define IOTHREAD_MUTEX_INIT(var) +#define IOSYNCHRONIZE(var) +#define IODESYNCHRONIZE(var) +#endif + struct IODescriptor; enum IOType; enum IOStatus;