X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2FIOEngine.h;h=f64078e83d4733587632f905509b5d2a800fcd99;hb=63fe80b57c7ff27b24900174fe3621f458135a11;hp=e331ce8457323a1f6957299ef2221f70d3ffb851;hpb=59659c9123e0b56c34f5fa9281566f574365deb5;p=ChatPrototype.git 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;