On Unix, zebra/z'mbol uses automake.
[idzebra-moved-to-github.git] / util / zebra-lock.c
index 0e08cde..47b2424 100644 (file)
@@ -5,25 +5,33 @@
 
 int zebra_mutex_init (Zebra_mutex *p)
 {
+#if HAVE_PTHREAD_H
     pthread_mutex_init (&p->mutex, 0);
+#endif
     return 0;
 }
 
 int zebra_mutex_destroy (Zebra_mutex *p)
 {
+#if HAVE_PTHREAD_H
     pthread_mutex_destroy (&p->mutex);
+#endif
     return 0;
 }
 
 int zebra_mutex_lock (Zebra_mutex *p)
 {
+#if HAVE_PTHREAD_H
     pthread_mutex_lock (&p->mutex);
+#endif
     return 0;
 }
 
 int zebra_mutex_unlock (Zebra_mutex *p)
 {
+#if HAVE_PTHREAD_H
     pthread_mutex_unlock (&p->mutex);
+#endif
     return 0;
 }
 
@@ -31,8 +39,10 @@ int zebra_lock_rdwr_init (Zebra_lock_rdwr *p)
 {
     p->readers_reading = 0;
     p->writers_writing = 0;
+#if HAVE_PTHREAD_H
     pthread_mutex_init (&p->mutex, 0);
     pthread_cond_init (&p->lock_free, 0);
+#endif
     return 0;
 }
 
@@ -40,33 +50,40 @@ int zebra_lock_rdwr_destroy (Zebra_lock_rdwr *p)
 {
     assert (p->readers_reading == 0);
     assert (p->writers_writing == 0);
+#if HAVE_PTHREAD_H
     pthread_mutex_destroy (&p->mutex);
     pthread_cond_destroy (&p->lock_free);
+#endif
     return 0;
 }
 
 int zebra_lock_rdwr_rlock (Zebra_lock_rdwr *p)
 {
+#if HAVE_PTHREAD_H
     pthread_mutex_lock (& p->mutex);
     while (p->writers_writing)
        pthread_cond_wait (&p->lock_free, &p->mutex);
     p->readers_reading++;
     pthread_mutex_unlock(&p->mutex);
+#endif
     return 0;
 }
 
 int zebra_lock_rdwr_wlock (Zebra_lock_rdwr *p)
 {
+#if HAVE_PTHREAD_H
     pthread_mutex_lock (&p->mutex);
     while (p->writers_writing || p->readers_reading)
        pthread_cond_wait (&p->lock_free, &p->mutex);
     p->writers_writing++;
     pthread_mutex_unlock (&p->mutex);
+#endif
     return 0;
 }
 
 int zebra_lock_rdwr_runlock (Zebra_lock_rdwr *p)
 {
+#if HAVE_PTHREAD_H
     pthread_mutex_lock (&p->mutex);
     if (p->readers_reading == 0)
     {
@@ -80,11 +97,13 @@ int zebra_lock_rdwr_runlock (Zebra_lock_rdwr *p)
            pthread_cond_signal (&p->lock_free);
        pthread_mutex_unlock (&p->mutex);
     }
+#endif
     return 0;
 }
 
 int zebra_lock_rdwr_wunlock (Zebra_lock_rdwr *p)
 {
+#if HAVE_PTHREAD_H
     pthread_mutex_lock (&p->mutex);
     if (p->writers_writing == 0)
     {
@@ -97,40 +116,60 @@ int zebra_lock_rdwr_wunlock (Zebra_lock_rdwr *p)
        pthread_cond_broadcast(&p->lock_free);
        pthread_mutex_unlock(&p->mutex);
     }
+#endif
     return 0;
 }
 
 int zebra_mutex_cond_init (Zebra_mutex_cond *p)
 {
+#if HAVE_PTHREAD_H
     pthread_cond_init (&p->cond, 0);
     pthread_mutex_init (&p->mutex, 0);
+#endif
     return 0;
 }
 
 int zebra_mutex_cond_destroy (Zebra_mutex_cond *p)
 {
+#if HAVE_PTHREAD_H
     pthread_cond_destroy (&p->cond);
     pthread_mutex_destroy (&p->mutex);
+#endif
     return 0;
 }
 
 int zebra_mutex_cond_lock (Zebra_mutex_cond *p)
 {
+#if HAVE_PTHREAD_H
     return pthread_mutex_lock (&p->mutex);
+#else
+    return 0;
+#endif
 }
 
 int zebra_mutex_cond_unlock (Zebra_mutex_cond *p)
 {
+#if HAVE_PTHREAD_H
     return pthread_mutex_unlock (&p->mutex);
+#else
+    return 0;
+#endif
 }
 
 int zebra_mutex_cond_wait (Zebra_mutex_cond *p)
 {
+#if HAVE_PTHREAD_H
     return pthread_cond_wait (&p->cond, &p->mutex);
+#else
+    return 0;
+#endif
 }
 
 int zebra_mutex_cond_signal (Zebra_mutex_cond *p)
 {
+#if HAVE_PTHREAD_H
     return pthread_cond_signal (&p->cond);
+#else
+    return 0;
+#endif
 }
-