]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Do not use the TryEnterCriticalSection API on windows since it is
authordrh <drh@noemail.net>
Tue, 4 Sep 2007 22:31:36 +0000 (22:31 +0000)
committerdrh <drh@noemail.net>
Tue, 4 Sep 2007 22:31:36 +0000 (22:31 +0000)
unavailable on some platforms. (CVS 4399)

FossilOrigin-Name: bf3d67d1bd1c48fff45dc24818b8358f79c9fdef

manifest
manifest.uuid
src/mutex_w32.c
src/sqlite.h.in

index e5016616b80a4147c68d639201668e49c8fb478a..2feeac4cb42eeb9e0464d3e94f067dda885919ff 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\sexternal\slocking\sto\stest_async.c.\sThere\sare\sstill\ssome\stests\sto\scome.\s(CVS\s4398)
-D 2007-09-04T18:28:44
+C Do\snot\suse\sthe\sTryEnterCriticalSection\sAPI\son\swindows\ssince\sit\sis\nunavailable\son\ssome\splatforms.\s(CVS\s4399)
+D 2007-09-04T22:31:37
 F Makefile.in cbfb898945536a8f9ea8b897e1586dd1fdbcc5db
 F Makefile.linux-gcc 65241babba6faf1152bf86574477baab19190499
 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -108,7 +108,7 @@ F src/mutex.c 40e5ba09d56863895882a0204d93832e9960ea78
 F src/mutex.h 079fa6fe9da18ceb89e79012c010594c6672addb
 F src/mutex_os2.c d47e9bd495583dd31263d8fe55160a31eb600a3c
 F src/mutex_unix.c ff77650261a245035b79c5c8a174f4e05d3cae8a
-F src/mutex_w32.c 54beb16ade8f80ea2bc30bc4dfb2087be3487ef3
+F src/mutex_w32.c 2812771e75148c58a62ca05bbeb9a8dd6ec46307
 F src/os.c 198c6c55cbdbe5b9c3105070c88fcc077d1b2447
 F src/os.h 53e65427899ed5697d79749d646e6a297b70171a
 F src/os_common.h 98862f120ca6bf7a48ce8b16f158b77d00bc9d2f
@@ -130,7 +130,7 @@ F src/random.c 4a22746501bf36b0a088c66e38dde5daba6a35da
 F src/select.c 4706a6115da1bdc09a2be5991168a6cc2c0df267
 F src/server.c 087b92a39d883e3fa113cae259d64e4c7438bc96
 F src/shell.c ac29402b538515fa4697282387be9c1205e6e9eb
-F src/sqlite.h.in 3926f5d7422ce8e0641f4fc941fc368c19ef6c94
+F src/sqlite.h.in 775be6f8a5305ef2c92506bc23181550171aaae2
 F src/sqlite3ext.h a93f59cdee3638dc0c9c086f80df743a4e68c3cb
 F src/sqliteInt.h bb126b074352ef0ee20399883172161baf5eead2
 F src/sqliteLimit.h 1bcbbdfa856f8b71b561abb31edb864b0eca1d12
@@ -569,7 +569,7 @@ F www/tclsqlite.tcl 8be95ee6dba05eabcd27a9d91331c803f2ce2130
 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
 F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
-P efd61df1b9170f0134787ae17ac996a7eff64add
-R ef7fa5443cd985d720e63f8ac953cec0
-U danielk1977
-Z 605a822a91549091d299d216a22bbd33
+P 3794dcd31a74e90b181b336bf6a4c917bda526b8
+R f8c85691f2efa8fda77b1b74d5099eab
+U drh
+Z 971dbe3f56f98d850a595d781e5442d1
index a63f7e2ede5b1bc9c6fad6c6932b920b96b12992..96875eff4a1bf7b1fe1987bbd5cdce4c43757832 100644 (file)
@@ -1 +1 @@
-3794dcd31a74e90b181b336bf6a4c917bda526b8
\ No newline at end of file
+bf3d67d1bd1c48fff45dc24818b8358f79c9fdef
\ No newline at end of file
index ffadd8d81e6d8b42d88eaf3c835282dede4788bd..0c2e08db17a0053eb682d29b3eefe47cdb9dfefb 100644 (file)
@@ -11,7 +11,7 @@
 *************************************************************************
 ** This file contains the C functions that implement mutexes for win32
 **
-** $Id: mutex_w32.c,v 1.2 2007/08/30 14:10:30 drh Exp $
+** $Id: mutex_w32.c,v 1.3 2007/09/04 22:31:37 drh Exp $
 */
 #include "sqliteInt.h"
 
@@ -141,6 +141,12 @@ void sqlite3_mutex_enter(sqlite3_mutex *p){
   p->nRef++;
 }
 int sqlite3_mutex_try(sqlite3_mutex *p){
+  /* The TryEnterCriticalSection() interface is not available on all
+  ** windows systems.  Since sqlite3_mutex_try() is only used as an
+  ** optimization, we can skip it on windows. */
+  return SQLITE_BUSY;
+
+#if 0  /* Not Available */
   int rc;
   assert( p );
   assert( p->id==SQLITE_MUTEX_RECURSIVE || sqlite3_mutex_notheld(p) );
@@ -152,6 +158,7 @@ int sqlite3_mutex_try(sqlite3_mutex *p){
     rc = SQLITE_BUSY;
   }
   return rc;
+#endif
 }
 
 /*
index 6c035de530d33a46462101813f47144a315b552a..db0ffb19db774748de887c14eb324fff6cb61d44 100644 (file)
@@ -30,7 +30,7 @@
 ** the version number) and changes its name to "sqlite3.h" as
 ** part of the build process.
 **
-** @(#) $Id: sqlite.h.in,v 1.258 2007/09/04 12:18:42 drh Exp $
+** @(#) $Id: sqlite.h.in,v 1.259 2007/09/04 22:31:37 drh Exp $
 */
 #ifndef _SQLITE3_H_
 #define _SQLITE3_H_
@@ -3432,6 +3432,11 @@ int sqlite3_vfs_unregister(sqlite3_vfs*);
 ** more than once, the behavior is undefined.   SQLite will never exhibit
 ** such behavior in its own use of mutexes.
 **
+** Some systems (ex: windows95) do not the operation implemented by
+** sqlite3_mutex_try().  On those systems, sqlite3_mutex_try() will
+** always return SQLITE_BUSY.  The SQLite core only ever uses
+** sqlite3_mutex_try() as an optimization so this is acceptable behavior.
+**
 ** The sqlite3_mutex_leave() routine exits a mutex that was
 ** previously entered by the same thread.  The behavior
 ** is undefined if the mutex is not currently entered by the