* Sebastian Hammer, Adam Dickmeiss
*
* $Log: locksrv.c,v $
- * Revision 1.2 1995-12-08 16:22:55 adam
+ * Revision 1.4 1996-04-10 16:01:27 quinn
+ * Fixed order of path/filename.
+ *
+ * Revision 1.3 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.
+ *
+ * Revision 1.2 1995/12/08 16:22:55 adam
* Work on update while servers are running. Three lock files introduced.
* The servers reload their registers when necessary, but they don't
* reestablish result sets yet.
#include <stdio.h>
#include <assert.h>
#include <unistd.h>
-#include <sys/file.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
if (server_lock_cmt == -1)
{
- sprintf (path, "%s%s", FNAME_COMMIT_LOCK, pathPrefix);
+ sprintf (path, "%s%s", pathPrefix, FNAME_COMMIT_LOCK);
if ((server_lock_cmt = open (path, O_CREAT|O_RDWR, 0666))
== -1)
{
}
assert (server_lock_org == -1);
- sprintf (path, "%s%s", FNAME_ORG_LOCK, pathPrefix);
+ sprintf (path, "%s%s", pathPrefix, FNAME_ORG_LOCK);
if ((server_lock_org = open (path, O_CREAT|O_RDWR, 0666))
== -1)
{
if (commitPhase)
{
logf (LOG_LOG, "Server locks org");
- flock (server_lock_org, LOCK_SH);
+ zebraLock (server_lock_org, 0);
}
else
{
logf (LOG_LOG, "Server locks cmt");
- flock (server_lock_cmt, LOCK_SH);
+ zebraLock (server_lock_cmt, 0);
}
return 0;
}
if (commitPhase)
{
logf (LOG_LOG, "Server unlocks org");
- flock (server_lock_org, LOCK_UN);
+ zebraUnlock (server_lock_org);
}
else
{
logf (LOG_LOG, "Server unlocks cmt");
- flock (server_lock_cmt, LOCK_UN);
+ zebraUnlock (server_lock_cmt);
}
}