* Sebastian Hammer, Adam Dickmeiss
*
* $Log: lockutil.c,v $
- * Revision 1.2 1995-12-11 11:43:29 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.
+ *
+ * Revision 1.2 1995/12/11 11:43:29 adam
* Locking based on fcntl instead of flock.
* Setting commitEnable removed. Command line option -n can be used to
* prevent commit if commit setting is defined in the configuration file.
#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);
int zebraLock (int fd, int wr)
{
+#if 0
+ return intLock (fd, wr ? F_EXLCK : F_SHLCK, F_SETLKW);
+#else
return intLock (fd, wr ? F_WRLCK : F_RDLCK, F_SETLKW);
+#endif
}
int zebraLockNB (int fd, int wr)
{
+#if 0
+ return intLock (fd, wr ? F_EXLCK : F_SHLCK, F_SETLK);
+#else
return intLock (fd, wr ? F_WRLCK : F_RDLCK, F_SETLK);
+#endif
}
int zebraUnlock (int fd)