Changeset: d4e3fd5b4552 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d4e3fd5b4552
Modified Files:
        clients/Tests/exports.stable.out
        common/utils/msabaoth.c
        common/utils/mutils.c
        common/utils/mutils.h
        gdk/gdk_utils.c
        tools/merovingian/daemon/argvcmds.c
        tools/merovingian/daemon/merovingian.c
        tools/merovingian/daemon/multiplex-funnel.c
Branch: default
Log Message:

Simplified function interface.
We always called MT_lockf with parameters 4 and 1.


diffs (202 lines):

diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -311,7 +311,7 @@ MT_Id MT_getpid(void);
 size_t MT_getrss(void);
 void MT_init(void);
 int MT_join_thread(MT_Id t);
-int MT_lockf(char *filename, int mode, off_t off, off_t len);
+int MT_lockf(char *filename, int mode);
 void *MT_mmap(const char *path, int mode, size_t len);
 int MT_munmap(void *p, size_t len);
 bool MT_path_absolute(const char *path);
diff --git a/common/utils/msabaoth.c b/common/utils/msabaoth.c
--- a/common/utils/msabaoth.c
+++ b/common/utils/msabaoth.c
@@ -641,7 +641,7 @@ msab_getSingleStatus(const char *pathbuf
                        (void)fclose(f);
                }
        } else if ((snprintf(buf, sizeof(buf), "%s/%s/%s", pathbuf, dbname, 
".gdk_lock") > 0) & /* no typo */
-                          ((fd = MT_lockf(buf, F_TEST, 4, 1)) == -2)) {
+                          ((fd = MT_lockf(buf, F_TEST)) == -2)) {
                /* Locking failed; this can be because the lockfile couldn't
                 * be created.  Probably there is no Mserver running for
                 * that case also.
diff --git a/common/utils/mutils.c b/common/utils/mutils.c
--- a/common/utils/mutils.c
+++ b/common/utils/mutils.c
@@ -278,7 +278,7 @@ dirname(char *path)
 
 /* see contract of unix MT_lockf */
 int
-MT_lockf(char *filename, int mode, off_t off, off_t len)
+MT_lockf(char *filename, int mode)
 {
        int ret = 1, fd = -1;
        OVERLAPPED ov;
@@ -292,19 +292,11 @@ MT_lockf(char *filename, int mode, off_t
 
        ov = (OVERLAPPED) {0};
 #if defined(DUMMYSTRUCTNAME) && (defined(NONAMELESSUNION) || 
!defined(_MSC_EXTENSIONS))        /* Windows SDK v7.0 */
-       ov.u.s.Offset = (unsigned int) off;
-#if 0
-       ov.u.s.OffsetHigh = off >> 32;
-#else
-       ov.u.s.OffsetHigh = 0;  /* sizeof(off) == 4, i.e. off >> 32 is not 
possible */
-#endif
+       ov.u.s.Offset = 4;
+       ov.u.s.OffsetHigh = 0;
 #else
-       ov.Offset = (unsigned int) off;
-#if 0
-       ov.OffsetHigh = off >> 32;
-#else
-       ov.OffsetHigh = 0;      /* sizeof(off) == 4, i.e. off >> 32 is not 
possible */
-#endif
+       ov.Offset = 4;
+       ov.OffsetHigh = 0;
 #endif
 
        if (mode == F_ULOCK) {
@@ -316,7 +308,7 @@ MT_lockf(char *filename, int mode, off_t
                                fp = *fpp;
                                *fpp = fp->next;
                                free(fp);
-                               ret = UnlockFileEx(fh, 0, len, 0, &ov);
+                               ret = UnlockFileEx(fh, 0, 1, 0, &ov);
                                return ret ? 0 : -1;
                        }
                }
@@ -327,7 +319,7 @@ MT_lockf(char *filename, int mode, off_t
                                NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
                if (fh == INVALID_HANDLE_VALUE)
                        return -2;
-               ret = UnlockFileEx(fh, 0, len, 0, &ov);
+               ret = UnlockFileEx(fh, 0, 1, 0, &ov);
                CloseHandle(fh);
                return 0;
        }
@@ -342,13 +334,13 @@ MT_lockf(char *filename, int mode, off_t
        }
 
        if (mode == F_TLOCK) {
-               ret = LockFileEx(fh, LOCKFILE_FAIL_IMMEDIATELY | 
LOCKFILE_EXCLUSIVE_LOCK, 0, len, 0, &ov);
+               ret = LockFileEx(fh, LOCKFILE_FAIL_IMMEDIATELY | 
LOCKFILE_EXCLUSIVE_LOCK, 0, 1, 0, &ov);
        } else if (mode == F_LOCK) {
-               ret = LockFileEx(fh, LOCKFILE_EXCLUSIVE_LOCK, 0, len, 0, &ov);
+               ret = LockFileEx(fh, LOCKFILE_EXCLUSIVE_LOCK, 0, 1, 0, &ov);
        } else if (mode == F_TEST) {
-               ret = LockFileEx(fh, LOCKFILE_FAIL_IMMEDIATELY | 
LOCKFILE_EXCLUSIVE_LOCK, 0, len, 0, &ov);
+               ret = LockFileEx(fh, LOCKFILE_FAIL_IMMEDIATELY | 
LOCKFILE_EXCLUSIVE_LOCK, 0, 1, 0, &ov);
                if (ret != 0) {
-                       UnlockFileEx(fh, 0, len, 0, &ov);
+                       UnlockFileEx(fh, 0, 1, 0, &ov);
                        close(fd);
                        return 0;
                }
@@ -408,15 +400,15 @@ lockf(int fd, int cmd, off_t len)
  * returns the (open) file descriptor to the file when locking
  * returns 0 when unlocking */
 int
-MT_lockf(char *filename, int mode, off_t off, off_t len)
+MT_lockf(char *filename, int mode)
 {
        int fd = open(filename, O_CREAT | O_RDWR | O_TEXT | O_CLOEXEC, 
MONETDB_MODE);
 
        if (fd < 0)
                return -2;
 
-       if (lseek(fd, off, SEEK_SET) >= 0 &&
-           lockf(fd, mode, len) == 0) {
+       if (lseek(fd, 4, SEEK_SET) >= 0 &&
+           lockf(fd, mode, 1) == 0) {
                if (mode == F_ULOCK || mode == F_TEST) {
                        close(fd);
                        return 0;
diff --git a/common/utils/mutils.h b/common/utils/mutils.h
--- a/common/utils/mutils.h
+++ b/common/utils/mutils.h
@@ -67,7 +67,7 @@ mutils_export char *dirname(char *path);
 #define F_ULOCK        0               /* unlock a previously locked region */
 #define F_LOCK 1               /* lock a region for exclusive use */
 
-mutils_export int MT_lockf(char *filename, int mode, off_t off, off_t len);
+mutils_export int MT_lockf(char *filename, int mode);
 
 mutils_export void print_trace(void);
 
diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -1026,7 +1026,7 @@ GDKlockHome(int farmid)
                GDKfree(gdklockpath);
                return GDK_FAIL;
        }
-       if ((fd = MT_lockf(gdklockpath, F_TLOCK, 4, 1)) < 0) {
+       if ((fd = MT_lockf(gdklockpath, F_TLOCK)) < 0) {
                GDKerror("GDKlockHome: Database lock '%s' denied\n",
                         gdklockpath);
                GDKfree(gdklockpath);
@@ -1077,7 +1077,7 @@ GDKunlockHome(int farmid)
        if (BBPfarms[farmid].lock_file) {
                char *gdklockpath = GDKfilepath(farmid, NULL, GDKLOCK, NULL);
                if (gdklockpath)
-                       MT_lockf(gdklockpath, F_ULOCK, 4, 1);
+                       MT_lockf(gdklockpath, F_ULOCK);
                fclose(BBPfarms[farmid].lock_file);
                BBPfarms[farmid].lock_file = NULL;
                GDKfree(gdklockpath);
diff --git a/tools/merovingian/daemon/argvcmds.c 
b/tools/merovingian/daemon/argvcmds.c
--- a/tools/merovingian/daemon/argvcmds.c
+++ b/tools/merovingian/daemon/argvcmds.c
@@ -187,7 +187,7 @@ command_get(confkeyval *ckv, int argc, c
        {
                /* check if there is a merovingian serving this dbfarm */
                int ret;
-               if ((ret = MT_lockf(".merovingian_lock", F_TLOCK, 4, 1)) == -1) 
{
+               if ((ret = MT_lockf(".merovingian_lock", F_TLOCK)) == -1) {
                        /* locking failed, merovingian is running */
                        FILE *pf;
                        char *pfile = getConfVal(ckv, "pidfile");
@@ -201,7 +201,7 @@ command_get(confkeyval *ckv, int argc, c
                } else {
                        if (ret >= 0) {
                                /* release a possible lock */
-                               MT_lockf(".merovingian_lock", F_ULOCK, 4, 1);
+                               MT_lockf(".merovingian_lock", F_ULOCK);
                                close(ret);
                        }
                        meropid = 0;
diff --git a/tools/merovingian/daemon/merovingian.c 
b/tools/merovingian/daemon/merovingian.c
--- a/tools/merovingian/daemon/merovingian.c
+++ b/tools/merovingian/daemon/merovingian.c
@@ -686,7 +686,7 @@ main(int argc, char *argv[])
        }
 
        /* lock such that we are alone on this world */
-       if ((lockfd = MT_lockf(".merovingian_lock", F_TLOCK, 4, 1)) == -1) {
+       if ((lockfd = MT_lockf(".merovingian_lock", F_TLOCK)) == -1) {
                /* locking failed */
                Mfprintf(stderr, "another monetdbd is already running\n");
                MERO_EXIT_CLEAN(1);
@@ -1113,7 +1113,7 @@ shutdown:
        }
 
        if (lockfd >= 0) {
-               MT_lockf(".merovingian_lock", F_ULOCK, 4, 1);
+               MT_lockf(".merovingian_lock", F_ULOCK);
                close(lockfd);
        }
 
diff --git a/tools/merovingian/daemon/multiplex-funnel.c 
b/tools/merovingian/daemon/multiplex-funnel.c
--- a/tools/merovingian/daemon/multiplex-funnel.c
+++ b/tools/merovingian/daemon/multiplex-funnel.c
@@ -438,7 +438,7 @@ multiplexInit(char *name, char *pattern,
        /* fake lock such that sabaoth believes we are (still) running, we
         * rely on merovingian moving to dbfarm here */
        snprintf(buf, sizeof(buf), "%s/.gdk_lock", name);
-       if ((m->gdklock = MT_lockf(buf, F_TLOCK, 4, 1)) == -1) {
+       if ((m->gdklock = MT_lockf(buf, F_TLOCK)) == -1) {
                /* locking failed, FIXME: cleanup here */
                Mfprintf(serr, "mfunnel: another instance is already 
running?\n");
                return(newErr("cannot lock for %s, already locked", name));
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to