mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-12 13:01:09 +03:00
Merge updates from trunk.
FossilOrigin-Name: a3cfd81339267c87db511cedf35ec209ee1f1a72
This commit is contained in:
12
manifest
12
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Fix\sseveral\sheader\sfile\scomments.\s\sNo\schanges\sto\scode.
|
C Merge\supdates\sfrom\strunk.
|
||||||
D 2014-05-05T17:43:28.823
|
D 2014-05-05T17:45:44.495
|
||||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||||
F Makefile.in dd2b1aba364ff9b05de41086f74407f285c57670
|
F Makefile.in dd2b1aba364ff9b05de41086f74407f285c57670
|
||||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||||
@@ -206,7 +206,7 @@ F src/os.h 60d419395e32a8029fa380a80a3da2e9030f635e
|
|||||||
F src/os_common.h 92815ed65f805560b66166e3583470ff94478f04
|
F src/os_common.h 92815ed65f805560b66166e3583470ff94478f04
|
||||||
F src/os_setup.h c9d4553b5aaa6f73391448b265b89bed0b890faa
|
F src/os_setup.h c9d4553b5aaa6f73391448b265b89bed0b890faa
|
||||||
F src/os_unix.c ae4b5240af4619d711301d7992396e182585269f
|
F src/os_unix.c ae4b5240af4619d711301d7992396e182585269f
|
||||||
F src/os_win.c 089fcb45dabe90a4c87369cc69846838198dd221
|
F src/os_win.c 485d06a93965f306c7281fca0937829292367234
|
||||||
F src/os_win.h ca9c83efaf41298691553e1d0f7e11328168d8b8
|
F src/os_win.h ca9c83efaf41298691553e1d0f7e11328168d8b8
|
||||||
F src/pager.c ab62a24218d87dda1be641f6c5ad291bff78fd94
|
F src/pager.c ab62a24218d87dda1be641f6c5ad291bff78fd94
|
||||||
F src/pager.h ffd5607f7b3e4590b415b007a4382f693334d428
|
F src/pager.h ffd5607f7b3e4590b415b007a4382f693334d428
|
||||||
@@ -1168,7 +1168,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
|
|||||||
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
||||||
F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
|
F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
|
||||||
F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
|
F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
|
||||||
P c4d1d8a0db48f523d1624f2468261c171152c0f7
|
P dd6eb5d1eb4d50023a008fac116497ede29600c1 4760504396bcf44528eb8de9ed7aa5d9659c54b6
|
||||||
R e81e8bbcb0f41d36dce23eda3c309a85
|
R 938ab94058764b9d56f0ca54851e9d8f
|
||||||
U mistachkin
|
U mistachkin
|
||||||
Z 2824130e829ad3dc4daa36d25ec17b58
|
Z a631e563685a71a6d0be75c7b14abe5e
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
dd6eb5d1eb4d50023a008fac116497ede29600c1
|
a3cfd81339267c87db511cedf35ec209ee1f1a72
|
||||||
37
src/os_win.c
37
src/os_win.c
@@ -1836,6 +1836,32 @@ static int winLogErrorAtLine(
|
|||||||
static int winIoerrRetry = SQLITE_WIN32_IOERR_RETRY;
|
static int winIoerrRetry = SQLITE_WIN32_IOERR_RETRY;
|
||||||
static int winIoerrRetryDelay = SQLITE_WIN32_IOERR_RETRY_DELAY;
|
static int winIoerrRetryDelay = SQLITE_WIN32_IOERR_RETRY_DELAY;
|
||||||
|
|
||||||
|
/*
|
||||||
|
** The "winIoerrCanRetry1" macro is used to determine if a particular I/O
|
||||||
|
** error code obtained via GetLastError() is eligible to be retried. It
|
||||||
|
** must accept the error code DWORD as its only argument and should return
|
||||||
|
** non-zero if the error code is transient in nature and the operation
|
||||||
|
** responsible for generating the original error might succeed upon being
|
||||||
|
** retried. The argument to this macro should be a variable.
|
||||||
|
**
|
||||||
|
** Additionally, a macro named "winIoerrCanRetry2" may be defined. If it
|
||||||
|
** is defined, it will be consulted only when the macro "winIoerrCanRetry1"
|
||||||
|
** returns zero. The "winIoerrCanRetry2" macro is completely optional and
|
||||||
|
** may be used to include additional error codes in the set that should
|
||||||
|
** result in the failing I/O operation being retried by the caller. If
|
||||||
|
** defined, the "winIoerrCanRetry2" macro must exhibit external semantics
|
||||||
|
** identical to those of the "winIoerrCanRetry1" macro.
|
||||||
|
*/
|
||||||
|
#if !defined(winIoerrCanRetry1)
|
||||||
|
#define winIoerrCanRetry1(a) (((a)==ERROR_ACCESS_DENIED) || \
|
||||||
|
((a)==ERROR_SHARING_VIOLATION) || \
|
||||||
|
((a)==ERROR_LOCK_VIOLATION) || \
|
||||||
|
((a)==ERROR_DEV_NOT_EXIST) || \
|
||||||
|
((a)==ERROR_NETNAME_DELETED) || \
|
||||||
|
((a)==ERROR_SEM_TIMEOUT) || \
|
||||||
|
((a)==ERROR_NETWORK_UNREACHABLE))
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** If a ReadFile() or WriteFile() error occurs, invoke this routine
|
** If a ReadFile() or WriteFile() error occurs, invoke this routine
|
||||||
** to see if it should be retried. Return TRUE to retry. Return FALSE
|
** to see if it should be retried. Return TRUE to retry. Return FALSE
|
||||||
@@ -1849,13 +1875,18 @@ static int winRetryIoerr(int *pnRetry, DWORD *pError){
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if( e==ERROR_ACCESS_DENIED ||
|
if( winIoerrCanRetry1(e) ){
|
||||||
e==ERROR_LOCK_VIOLATION ||
|
|
||||||
e==ERROR_SHARING_VIOLATION ){
|
|
||||||
sqlite3_win32_sleep(winIoerrRetryDelay*(1+*pnRetry));
|
sqlite3_win32_sleep(winIoerrRetryDelay*(1+*pnRetry));
|
||||||
++*pnRetry;
|
++*pnRetry;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
#if defined(winIoerrCanRetry2)
|
||||||
|
else if( winIoerrCanRetry2(e) ){
|
||||||
|
sqlite3_win32_sleep(winIoerrRetryDelay*(1+*pnRetry));
|
||||||
|
++*pnRetry;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if( pError ){
|
if( pError ){
|
||||||
*pError = e;
|
*pError = e;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user