]> git.sur5r.net Git - openldap/commitdiff
ITS#8582 keep mutex at end of struct
authorHoward Chu <hyc@openldap.org>
Mon, 6 Feb 2017 15:09:26 +0000 (15:09 +0000)
committerHoward Chu <hyc@openldap.org>
Mon, 6 Feb 2017 15:09:26 +0000 (15:09 +0000)
since it's variable size on Linux/glibc

libraries/liblmdb/mdb.c

index ec2488a89a535c99a936e8e51b8e4843fc8cdfe0..ac381d9e2b8cb264f0e9aff3d1f45530101ec79b 100644 (file)
@@ -809,6 +809,16 @@ typedef struct MDB_txbody {
        uint32_t        mtb_magic;
                /** Format of this lock file. Must be set to #MDB_LOCK_FORMAT. */
        uint32_t        mtb_format;
+               /**     The ID of the last transaction committed to the database.
+                *      This is recorded here only for convenience; the value can always
+                *      be determined by reading the main database meta pages.
+                */
+       volatile txnid_t                mtb_txnid;
+               /** The number of slots that have been used in the reader table.
+                *      This always records the maximum count, it is not decremented
+                *      when readers release their slots.
+                */
+       volatile unsigned       mtb_numreaders;
 #if defined(_WIN32) || defined(MDB_USE_POSIX_SEM)
        char    mtb_rmname[MNAME_LEN];
 #elif defined(MDB_USE_SYSV_SEM)
@@ -820,16 +830,6 @@ typedef struct MDB_txbody {
                 */
        mdb_mutex_t     mtb_rmutex;
 #endif
-               /**     The ID of the last transaction committed to the database.
-                *      This is recorded here only for convenience; the value can always
-                *      be determined by reading the main database meta pages.
-                */
-       volatile txnid_t                mtb_txnid;
-               /** The number of slots that have been used in the reader table.
-                *      This always records the maximum count, it is not decremented
-                *      when readers release their slots.
-                */
-       volatile unsigned       mtb_numreaders;
 } MDB_txbody;
 
        /** The actual reader table definition. */