Zebra version corresponds to YAZ version 1.4.
[idzebra-moved-to-github.git] / index / lockutil.c
index d626d70..1e0eb92 100644 (file)
@@ -4,7 +4,23 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: lockutil.c,v $
- * Revision 1.3  1995-12-12 16:00:57  adam
+ * Revision 1.8  1997-09-17 12:19:15  adam
+ * Zebra version corresponds to YAZ version 1.4.
+ * Changed Zebra server so that it doesn't depend on global common_resource.
+ *
+ * Revision 1.7  1997/09/09 13:38:08  adam
+ * Partial port to WIN95/NT.
+ *
+ * Revision 1.6  1996/10/29 14:08:14  adam
+ * Uses resource lockDir instead of lockPath.
+ *
+ * Revision 1.5  1996/03/26 16:01:13  adam
+ * New setting lockPath: directory of various lock files.
+ *
+ * Revision 1.4  1995/12/13  08:46:10  adam
+ * Locking uses F_WRLCK and F_RDLCK again!
+ *
+ * Revision 1.3  1995/12/12  16:00:57  adam
  * System call sync(2) used after update/commit.
  * Locking (based on fcntl) uses F_EXLCK and F_SHLCK instead of F_WRLCK
  * and F_RDLCK.
 #include <errno.h>
 #include <fcntl.h>
 #include <sys/types.h>
+#ifdef WINDOWS
+#include <io.h>
+#else
 #include <unistd.h>
+#endif
 
-#include <alexutil.h>
 #include "index.h"
 
 static char *lockDir = NULL;
 
-void zebraLockPrefix (char *pathPrefix)
+void zebraLockPrefix (Res res, char *pathPrefix)
 {
     if (!lockDir)
-        lockDir = res_get_def (common_resource, "lockDir", "");
+        lockDir = res_get_def (res, "lockDir", "");
     assert (lockDir);
     
     strcpy (pathPrefix, lockDir);
@@ -53,7 +72,7 @@ static int intLock (int fd, int type, int cmd)
 
 int zebraLock (int fd, int wr)
 {
-#if 1
+#if 0
     return intLock (fd, wr ? F_EXLCK : F_SHLCK, F_SETLKW);
 #else
     return intLock (fd, wr ? F_WRLCK : F_RDLCK, F_SETLKW);
@@ -62,10 +81,10 @@ int zebraLock (int fd, int wr)
 
 int zebraLockNB (int fd, int wr)
 {
-#if 1
-    return intLock (fd, wr ? F_EXLCK : F_SHLCK, F_SETLKW);
+#if 0
+    return intLock (fd, wr ? F_EXLCK : F_SHLCK, F_SETLK);
 #else
-    return intLock (fd, wr ? F_WRLCK : F_RDLCK, F_SETLKW);
+    return intLock (fd, wr ? F_WRLCK : F_RDLCK, F_SETLK);
 #endif
 }