X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Flockutil.c;fp=index%2Flockutil.c;h=d626d7010a43af5461c1665739db7e263e88e512;hb=7e3b091d6944a2ef10f1c6e983181be53b565e34;hp=79dd0dc1b11aa7fe93e45bd065a217959f705f8a;hpb=fe8a4ac0e92103284e9888f0c13c141f4711d9a3;p=idzebra-moved-to-github.git diff --git a/index/lockutil.c b/index/lockutil.c index 79dd0dc..d626d70 100644 --- a/index/lockutil.c +++ b/index/lockutil.c @@ -4,7 +4,12 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: lockutil.c,v $ - * Revision 1.2 1995-12-11 11:43:29 adam + * 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. @@ -48,12 +53,20 @@ static int intLock (int fd, int type, int cmd) int zebraLock (int fd, int wr) { +#if 1 + 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) { - return intLock (fd, wr ? F_WRLCK : F_RDLCK, F_SETLK); +#if 1 + return intLock (fd, wr ? F_EXLCK : F_SHLCK, F_SETLKW); +#else + return intLock (fd, wr ? F_WRLCK : F_RDLCK, F_SETLKW); +#endif } int zebraUnlock (int fd)