]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Make multiple attempts to delete files marked DELETE_ON_CLOSE under
authordrh <drh@noemail.net>
Wed, 20 Feb 2008 00:00:00 +0000 (00:00 +0000)
committerdrh <drh@noemail.net>
Wed, 20 Feb 2008 00:00:00 +0000 (00:00 +0000)
WinCE.  Ticket #2950. (CVS 4802)

FossilOrigin-Name: 5bc8e564e3499ada01a6c3d74b1e6d6906d2a118

manifest
manifest.uuid
src/os_win.c

index 10e659c7fb8acceba9a8b9a6e3bccab23d6af2de..7c5afd1dcdf2924da81579c808729821e724b762 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Remove\sinstances\sof\sstrcpy()\sfrom\stest\scode.\sUse\smemcpy()\sor\nsqlite3_snprintf()\sinstead.\s(CVS\s4801)
-D 2008-02-19T18:29:07
+C Make\smultiple\sattempts\sto\sdelete\sfiles\smarked\sDELETE_ON_CLOSE\sunder\nWinCE.\s\sTicket\s#2950.\s(CVS\s4802)
+D 2008-02-20T00:00:00
 F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7
 F Makefile.in bc2b5df3e3d0d4b801b824b7ef6dec43812b049b
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -125,7 +125,7 @@ F src/os_test.c 49833426101f99aee4bb5f6a44b7c4b2029fda1c
 F src/os_test.h 903c93554c23d88f34f667f1979e4a1cee792af3
 F src/os_unix.c e4daef7628f690fa2b188af3632fb18f96525946
 F src/os_unix.h 5768d56d28240d3fe4537fac08cc85e4fb52279e
-F src/os_win.c c832d528ea774c7094d887749d71884984c9034c
+F src/os_win.c aa3f4bbee3b8c182d25a33fbc319f486857c12c1
 F src/os_win.h 41a946bea10f61c158ce8645e7646b29d44f122b
 F src/pager.c caa7c06d6c98df0fc6e0e797ee9cef7420fb59fa
 F src/pager.h 8174615ffd14ccc2cad2b081b919a398fa95e3f9
@@ -621,7 +621,7 @@ F www/tclsqlite.tcl 8be95ee6dba05eabcd27a9d91331c803f2ce2130
 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
 F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
-P 68f5ddddf0d1b5c8ed97dda0a32362a55637b5f2
-R 95dcd7a2db6ff273a951495091bfa925
+P 7b50140dc0fb41a1b40c8709d96e214d98b06f81
+R 9e4a40f76c1bf3608621dd453b2ad829
 U drh
-Z 94dde115ea93b6ad849adc1b17145e45
+Z 92b5a213c6c415d6012472fd23b27c6c
index 20e9046848244d1c16db7cd1c2b8838350e39b5e..cab4ed5af6910f5abd463139c436b67053ea8cd7 100644 (file)
@@ -1 +1 @@
-7b50140dc0fb41a1b40c8709d96e214d98b06f81
\ No newline at end of file
+5bc8e564e3499ada01a6c3d74b1e6d6906d2a118
\ No newline at end of file
index e5555f127534f5150e2f6aa4359d90b5b3dedb1e..d99c909ea425e800229993ed5e7b160614988b25 100644 (file)
@@ -606,9 +606,17 @@ static int winClose(sqlite3_file *id){
     rc = CloseHandle(pFile->h);
   }while( rc==0 && cnt++ < MX_CLOSE_ATTEMPT && (Sleep(100), 1) );
 #if OS_WINCE
+#define WINCE_DELETION_ATTEMPTS 3
   winceDestroyLock(pFile);
   if( pFile->zDeleteOnClose ){
-    DeleteFileW(pFile->zDeleteOnClose);
+    int cnt = 0;
+    while(
+           DeleteFileW(pFile->zDeleteOnClose)==0
+        && GetFileAttributesW(pFile->zDeleteOnClose)!=0xffffffff 
+        && cnt++ < WINCE_DELETION_ATTEMPTS
+    ){
+       Sleep(100);  /* Wait a little before trying again */
+    }
     free(pFile->zDeleteOnClose);
   }
 #endif