#ifndef ZEBRA_LOCK_H
#define ZEBRA_LOCK_H
-#if HAVE_PTHREAD_H
+#ifdef WIN32
+#include <windows.h>
+#endif
+#if YAZ_POSIX_THREADS
#include <pthread.h>
#endif
YAZ_BEGIN_CDECL
typedef struct {
-#if HAVE_PTHREAD_H
- pthread_mutex_t mutex;
+#ifdef WIN32
+ CRITICAL_SECTION mutex;
#else
+# if YAZ_POSIX_THREADS
+ pthread_mutex_t mutex;
+# else
int dummy;
+# endif
#endif
+ int state;
} Zebra_mutex;
YAZ_EXPORT int zebra_mutex_init (Zebra_mutex *p);
typedef struct {
int readers_reading;
int writers_writing;
-#if HAVE_PTHREAD_H
+#if YAZ_POSIX_THREADS
pthread_mutex_t mutex;
pthread_cond_t lock_free;
#endif
YAZ_EXPORT int zebra_lock_rdwr_wunlock (Zebra_lock_rdwr *p);
typedef struct {
-#if HAVE_PTHREAD_H
+#if YAZ_POSIX_THREADS
pthread_mutex_t mutex;
pthread_cond_t cond;
#else