diff --git a/manifest b/manifest index 06e3e94b1d..1b3c197b43 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Explicitly\sinitialize\sat\sleast\sthe\sfirst\sfield\sof\severy\sstruct.\sThis\sis\sto\swork\saround\scompilers\sthat\sdon't\slike\sthe\ssyntax\s"struct\sXXX\s{\s...\s}\syyy\s=\s{};".\s(CVS\s5666) -D 2008-09-02T17:52:52 +C API\sdocumentation\supdates\sfor\sthreading\smode.\s(CVS\s5667) +D 2008-09-02T21:35:03 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in 689e14735f862a5553bceef206d8c13e29504e44 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -147,7 +147,7 @@ F src/random.c 11bbdf7def3746a762fbdb56c9d04648135ad6d8 F src/resolve.c a6abf83125bce0c80ba04acc27c3565155ad305c F src/select.c eec7c5f28a0c75fdd8500630435af176bba73219 F src/shell.c d83b578a8ccdd3e0e7fef4388a0887ce9f810967 -F src/sqlite.h.in 81c37dcbd5bb1b1a5f6cdd96a67e82e6a0c3d1da +F src/sqlite.h.in 7da6a0d39221affca458b4ba305be3eb1590bb8e F src/sqlite3ext.h 1e3887c9bd3ae66cb599e922824b04cd0d0f2c3e F src/sqliteInt.h 4e81ab61bc9a942f0dafdb8c2cec7825f6eba2f5 F src/sqliteLimit.h f435e728c6b620ef7312814d660a81f9356eb5c8 @@ -630,7 +630,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81 F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 1dbced29de5f59ba2ebf877edcadf171540374d1 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e -P e869446119724b9b1568b1f8e56e9f29ff6d3816 -R 9d15214be0d8a6dfee557461b3e13e4a -U danielk1977 -Z a4210662dddf1b4f707bdd6daa55e785 +P 88bfdc87471e65ac5a262a794b8cdf3e563eb327 +R 9074e71dd90330aa0cdf889817e3ecc6 +U drh +Z d261a4787bb96a3cdffa0da07ab29e60 diff --git a/manifest.uuid b/manifest.uuid index 35dd0fd74f..5ff38bc3cb 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -88bfdc87471e65ac5a262a794b8cdf3e563eb327 \ No newline at end of file +fa237c14c8551315ea8f239e89a81b7725675c81 \ No newline at end of file diff --git a/src/sqlite.h.in b/src/sqlite.h.in index f729a97d84..de30080ece 100644 --- a/src/sqlite.h.in +++ b/src/sqlite.h.in @@ -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.396 2008/09/01 22:06:23 shane Exp $ +** @(#) $Id: sqlite.h.in,v 1.397 2008/09/02 21:35:03 drh Exp $ */ #ifndef _SQLITE3_H_ #define _SQLITE3_H_ @@ -154,8 +154,9 @@ int sqlite3_libversion_number(void); ** CAPI3REF: Test To See If The Library Is Threadsafe {H10100} ** ** SQLite can be compiled with or without mutexes. When -** the [SQLITE_THREADSAFE] C preprocessor macro is true, mutexes -** are enabled and SQLite is threadsafe. When that macro is false, +** the [SQLITE_THREADSAFE] C preprocessor macro 1 or 2, mutexes +** are enabled and SQLite is threadsafe. When the +** [SQLITE_THREADSAFE] macro is 0, ** the mutexes are omitted. Without the mutexes, it is not safe ** to use SQLite concurrently from more than one thread. ** @@ -177,12 +178,13 @@ int sqlite3_libversion_number(void); ** only the default compile-time setting, not any run-time changes ** to that setting. ** +** See the [threading mode] documentation for additional information. +** ** INVARIANTS: ** ** {H10101} The [sqlite3_threadsafe()] function shall return nonzero if -** SQLite was compiled with the its mutexes enabled by default -** or zero if SQLite was compiled such that mutexes are -** permanently disabled. +** and only if +** SQLite was compiled with the its mutexes enabled by default. ** ** {H10102} The value returned by the [sqlite3_threadsafe()] function ** shall not change when mutex setting are modified at @@ -1097,7 +1099,9 @@ struct sqlite3_mem_methods { ** The application is responsible for serializing access to ** [database connections] and [prepared statements]. But other mutexes ** are enabled so that SQLite will be safe to use in a multi-threaded -** environment. +** environment as long as no two threads attempt to use the same +** [database connection] at the same time. See the [threading mode] +** documentation for additional information. ** **
SQLITE_CONFIG_SERIALIZED
**
There are no arguments to this option. This option enables @@ -1108,11 +1112,7 @@ struct sqlite3_mem_methods { ** to [database connections] and [prepared statements] so that the ** application is free to use the same [database connection] or the ** same [prepared statement] in different threads at the same time. -** -**

This configuration option merely sets the default mutex -** behavior to serialize access to [database connections]. Individual -** [database connections] can override this setting -** using the [SQLITE_OPEN_NOMUTEX] flag to [sqlite3_open_v2()].

+** See the [threading mode] documentation for additional information. ** **
SQLITE_CONFIG_MALLOC
**
This option takes a single argument which is a pointer to an @@ -2390,7 +2390,7 @@ void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*); ** except that it accepts two additional parameters for additional control ** over the new database connection. The flags parameter can take one of ** the following three values, optionally combined with the -** [SQLITE_OPEN_NOMUTEX] flag: +** [SQLITE_OPEN_NOMUTEX] or [SQLITE_OPEN_FULLMUTEX] flags: ** **
**
[SQLITE_OPEN_READONLY]
@@ -2410,16 +2410,15 @@ void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*); ** ** If the 3rd parameter to sqlite3_open_v2() is not one of the ** combinations shown above or one of the combinations shown above combined -** with the [SQLITE_OPEN_NOMUTEX] flag, then the behavior is undefined. +** with the [SQLITE_OPEN_NOMUTEX] or [SQLITE_OPEN_FULLMUTEX] flags, +** then the behavior is undefined. ** -** If the [SQLITE_OPEN_NOMUTEX] flag is set, then mutexes on the -** opened [database connection] are disabled and the appliation must -** insure that access to the [database connection] and its associated -** [prepared statements] is serialized. The [SQLITE_OPEN_NOMUTEX] flag -** is the default behavior is SQLite is configured using the -** [SQLITE_CONFIG_MULTITHREAD] or [SQLITE_CONFIG_SINGLETHREAD] options -** to [sqlite3_config()]. The [SQLITE_OPEN_NOMUTEX] flag only makes a -** difference when SQLite is in its default [SQLITE_CONFIG_SERIALIZED] mode. +** If the [SQLITE_OPEN_NOMUTEX] flag is set, then the database connection +** opens in the multi-thread [threading mode] as long as the single-thread +** mode has not been set at compile-time or start-time. If the +** [SQLITE_OPEN_FULLMUTEX] flag is set then the database connection opens +** in the serialized [threading mode] unless single-thread was +** previously selected at compile-time or start-time. ** ** If the filename is ":memory:", then a private, temporary in-memory database ** is created for the connection. This in-memory database will vanish when