X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2FIOEngine.h;h=5f68240617f1304da64ddbf9a1f6a9e1f84be53e;hb=be42ae9721e6c4dc079539ee60b1c2f06e1241d9;hp=e331ce8457323a1f6957299ef2221f70d3ffb851;hpb=59659c9123e0b56c34f5fa9281566f574365deb5;p=NeonServV5.git diff --git a/src/IOEngine.h b/src/IOEngine.h index e331ce8..5f68240 100644 --- a/src/IOEngine.h +++ b/src/IOEngine.h @@ -18,6 +18,27 @@ #define _IOEngine_h #include "IOHandler.h" +#ifdef HAVE_PTHREAD_H +#include +#ifdef PTHREAD_MUTEX_RECURSIVE_NP +#define PTHREAD_MUTEX_RECURSIVE_VAL PTHREAD_MUTEX_RECURSIVE_NP +#else +#define PTHREAD_MUTEX_RECURSIVE_VAL PTHREAD_MUTEX_RECURSIVE +#endif +#define IOTHREAD_MUTEX_INIT(var) { \ + pthread_mutexattr_t mutex_attr; \ + pthread_mutexattr_init(&mutex_attr);\ + pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_RECURSIVE_VAL);\ + 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;