]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Work around restriction in Windows file locking.
authorshaneh <shaneh@noemail.net>
Tue, 7 Dec 2010 17:12:21 +0000 (17:12 +0000)
committershaneh <shaneh@noemail.net>
Tue, 7 Dec 2010 17:12:21 +0000 (17:12 +0000)
FossilOrigin-Name: fe441df9ba447d97571e919099846efa3ec87427

configure [changed mode: 0755->0644]
install-sh [changed mode: 0755->0644]
manifest
manifest.uuid
src/test_superlock.c

old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index 10f8555a8cca810072fd46570b0624a18323ec73..3a63518a4c653eae26a11bcf34efda1d302139f6 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\sbug\sin\sthe\sdemo\s"superlock"\scode\spreventing\slocks\sfrom\sbeing\sreleased\sin\ssome\scircumstances.
-D 2010-12-07T16:39:26
+C Work\saround\srestriction\sin\sWindows\sfile\slocking.
+D 2010-12-07T17:12:21
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 4547616ad2286053af6ccccefa242dc925e49bf0
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -22,7 +22,7 @@ F art/src_logo.gif 9341ef09f0e53cd44c0c9b6fc3c16f7f3d6c2ad9
 F config.guess 226d9a188c6196f3033ffc651cbc9dcee1a42977
 F config.h.in 868fdb48c028421a203470e15c69ada15b9ba673
 F config.sub 9ebe4c3b3dab6431ece34f16828b594fb420da55
-F configure daed6cfdb4c1449a4335b3eeddc0d836e33fb54e x
+F configure daed6cfdb4c1449a4335b3eeddc0d836e33fb54e
 F configure.ac 699040cc9abb7465dca5a2972bc89d227fd8f734
 F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad
 F doc/lemon.html f0f682f50210928c07e562621c3b7e8ab912a538
@@ -97,7 +97,7 @@ F ext/rtree/rtree_util.tcl 06aab2ed5b826545bf215fff90ecb9255a8647ea
 F ext/rtree/sqlite3rtree.h 1af0899c63a688e272d69d8e746f24e76f10a3f0
 F ext/rtree/tkt3363.test 142ab96eded44a3615ec79fba98c7bde7d0f96de
 F ext/rtree/viewrtree.tcl eea6224b3553599ae665b239bd827e182b466024
-F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
+F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895
 F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
 F main.mk 05d0f3475dd331896bd607cfb45c5e21b94589ad
 F mkdll.sh 7d09b23c05d56532e9d44a50868eb4b12ff4f74a
@@ -217,7 +217,7 @@ F src/test_rtree.c 30c981837445a4e187ee850a49c4760d9642f7c3
 F src/test_schema.c 8c06ef9ddb240c7a0fcd31bc221a6a2aade58bf0
 F src/test_server.c bbba05c144b5fc4b52ff650a4328027b3fa5fcc6
 F src/test_stat.c f682704b5d1ba8e1d4e7e882a6d7922e2dcf066c
-F src/test_superlock.c aa91c01e42c8e1eef663b74bd1b9a762306f06b5
+F src/test_superlock.c 2b97936ca127d13962c3605dbc9a4ef269c424cd
 F src/test_tclvar.c f4dc67d5f780707210d6bb0eb6016a431c04c7fa
 F src/test_thread.c bedd05cad673dba53326f3aa468cc803038896c0
 F src/test_vfs.c e10fcca756cafa89438311b31522ac1f95bf784b
@@ -894,7 +894,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P 11c74c0dae0e302f248ec4af6dc8a9376203b034
-R b4c637d07289308a3222d68447f4c6c3
-U dan
-Z 63bd98324f51b062689452a6abdd2cdc
+P 65c393793ff5fdb935d5acfe5bdc3bca052f7314
+R 6bbeb99b0a61f7ea1af21c5b74072ff6
+U shaneh
+Z 46b092e6924aa6236cd81b6ddc388e65
index 63640be6f9fe70df2ee3464111b5fe73559b2f52..edaec7f5eff9fbdfe0da67b1bcd2171f65428ec4 100644 (file)
@@ -1 +1 @@
-65c393793ff5fdb935d5acfe5bdc3bca052f7314
\ No newline at end of file
+fe441df9ba447d97571e919099846efa3ec87427
\ No newline at end of file
index 464da55076cedfd15779719e1cd1780a0b4465d7..936fcad0c56f6bc85809742f6ae1c1eeb8b7d2f1 100644 (file)
@@ -151,10 +151,14 @@ static int superlockWalLock(
 void sqlite3demo_superunlock(void *pLock){
   Superlock *p = (Superlock *)pLock;
   if( p->bWal ){
+    int rc;                         /* Return code */
     int flags = SQLITE_SHM_UNLOCK | SQLITE_SHM_EXCLUSIVE;
     sqlite3_file *fd = 0;
-    sqlite3_file_control(p->db, "main", SQLITE_FCNTL_FILE_POINTER, (void *)&fd);
-    fd->pMethods->xShmLock(fd, 2, SQLITE_SHM_NLOCK-2, flags);
+    rc = sqlite3_file_control(p->db, "main", SQLITE_FCNTL_FILE_POINTER, (void *)&fd);
+    if( rc==SQLITE_OK ){
+      fd->pMethods->xShmLock(fd, 2, 1, flags);
+      fd->pMethods->xShmLock(fd, 3, SQLITE_SHM_NLOCK-3, flags);
+    }
   }
   sqlite3_close(p->db);
   sqlite3_free(p);