X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fzebra-lock.h;h=44de1f4604097d6ab574e7c7ca117a1c8cf970d0;hb=ba572d8e1de44023f355c09c4250328aba0e9a47;hp=01f338db309da799726c8ab0e53739baa0e4c690;hpb=c41c84a497ae744aa825a90f144c85b54f1cd4bb;p=idzebra-moved-to-github.git diff --git a/include/zebra-lock.h b/include/zebra-lock.h index 01f338d..44de1f4 100644 --- a/include/zebra-lock.h +++ b/include/zebra-lock.h @@ -2,6 +2,9 @@ #ifndef ZEBRA_LOCK_H #define ZEBRA_LOCK_H +#ifdef WIN32 +#include +#endif #if HAVE_PTHREAD_H #include #endif @@ -11,7 +14,16 @@ YAZ_BEGIN_CDECL typedef struct { +#ifdef WIN32 + CRITICAL_SECTION mutex; +#else +# if HAVE_PTHREAD_H pthread_mutex_t mutex; +# else + int dummy; +# endif +#endif + int state; } Zebra_mutex; YAZ_EXPORT int zebra_mutex_init (Zebra_mutex *p); @@ -22,8 +34,10 @@ YAZ_EXPORT int zebra_mutex_unlock (Zebra_mutex *p); typedef struct { int readers_reading; int writers_writing; +#if HAVE_PTHREAD_H pthread_mutex_t mutex; pthread_cond_t lock_free; +#endif } Zebra_lock_rdwr; YAZ_EXPORT int zebra_lock_rdwr_init (Zebra_lock_rdwr *p); @@ -34,8 +48,12 @@ YAZ_EXPORT int zebra_lock_rdwr_runlock (Zebra_lock_rdwr *p); YAZ_EXPORT int zebra_lock_rdwr_wunlock (Zebra_lock_rdwr *p); typedef struct { +#if HAVE_PTHREAD_H pthread_mutex_t mutex; pthread_cond_t cond; +#else + int dummy; +#endif } Zebra_mutex_cond; YAZ_EXPORT int zebra_mutex_cond_init (Zebra_mutex_cond *p); @@ -46,4 +64,5 @@ YAZ_EXPORT int zebra_mutex_cond_wait (Zebra_mutex_cond *p); YAZ_EXPORT int zebra_mutex_cond_signal (Zebra_mutex_cond *p); YAZ_END_CDECL + #endif