1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-09 14:21:03 +03:00
Commit Graph

50 Commits

Author SHA1 Message Date
stephan
24f6baca16 Change 3 instance of #if SQLITE_ENABLE_API_ARMOR to #ifdef for consistency with how it is normally used.
FossilOrigin-Name: dd766eeb59fec71627dd8ad8f120875b96fda455c6401e5671e086b785e2b2bc
2023-10-15 13:36:21 +00:00
drh
ffd3fd0c30 Add new memory barriers during initialization.
FossilOrigin-Name: a9b2adc5d61790abd86839d12e7ecb98a85d7e4cde5f94558530e32449d9e483
2020-01-29 13:10:50 +00:00
drh
0cdbe1aee0 Make the internal dynamic string interface available to extensions using
the new sqlite3_str object and its associated methods.  This is mostly just
a renaming of internal objects and methods to use external names, through
there are a few small wrapper functions.

FossilOrigin-Name: 87f261f0cb800b06ad786f6df16f2c4dddd0d93dfdcc77b4a4eaa22920b56bf1
2018-05-09 13:46:26 +00:00
dan
8adb25ab63 Fix a compilation problem when both SQLITE_ENABLE_MULTITHREADED_CHECKS and
SQLITE_ENABLE_API_ARMOUR are defined.

FossilOrigin-Name: 0342ce510d2063a63839399a2cfa25b7fc02f4fde17764082676b332d6136241
2017-12-05 14:58:59 +00:00
dan
a90a2d58a4 Use a symbolic constant instead of a literal (-1) to identify a
warn-on-contention mutex.

FossilOrigin-Name: 12a23c0a66fac5c9674120b390f6abaeaba3f7ff04693b281af1eefb93d6f47c
2017-11-28 07:47:57 +00:00
dan
8385becfe1 Add experimental feature to detect threading bugs in apps that use
SQLITE_CONFIG_MULTITHREADED. Enabled at compile time using
SQLITE_ENABLE_MULTITHREADED_CHECKS.

FossilOrigin-Name: a66886ac13aa6d8ccbb6d673ddd00267c93e3ee1fbc158236fce3157d150868d
2017-11-25 17:51:01 +00:00
mistachkin
04abf0878f Import common changes from the mutex initialization branch.
FossilOrigin-Name: 334720c01722478af0d3dfd6fe8bafd88ba09f49
2015-09-12 18:57:45 +00:00
drh
6081c1dbdf Add a memory barrier to the mutex initialization logic, try to work around
an issue reported by WebKit.

FossilOrigin-Name: 11a9a786ec06403addb47f5c6fb142b382fae522
2015-09-06 02:51:04 +00:00
drh
f5ed7ad63e Fix harmless compiler warnings.
FossilOrigin-Name: b0badb99023e23bef0e2064cec58f2b279af0c0b
2015-06-15 14:43:25 +00:00
mistachkin
2d8ad51c5b Add special handling for static mutexes in sqlite3_mutex_alloc() when automatic calls to sqlite3_initialize() are enabled.
FossilOrigin-Name: 7857d27caa845e5629d94c2e66587dc89016daca
2014-10-27 22:06:21 +00:00
drh
d42d0bed94 Add three new static mutexes for use by the application. This is a partial
import of changes from the threads branch.

FossilOrigin-Name: 3aad01960f92c5e77dba64ac1a6c6b063378fb97
2014-07-30 21:10:12 +00:00
drh
e4c88c0c38 Fix typos and comments and make minor changes to a few function names,
as suggested by readership.

FossilOrigin-Name: e9d05cbb7676cbda83f1b3b71447404d7edde898
2012-01-04 12:57:45 +00:00
dan
558814f8c6 Add some 'const' markers to static data that is really constant.
FossilOrigin-Name: e7073e23b80e7cae0c76d42f014ee9b2d40a8f2f
2010-06-02 05:53:53 +00:00
drh
92d7652379 When the in single-threaded mode, the sqlite3_mutex_alloc() interface
still returns a non-NULL value.  The mutex doesn't do anything, but it
tests non-NULL.  This way, extensions (or VFSes) that use sqlite3_mutex_alloc()
can tell the difference between an OOM error and mutexes being disabled.

FossilOrigin-Name: 451fd175758983c335aab449fdc4cb838156c4cb
2010-05-05 00:05:24 +00:00
drh
7aba8fdef7 Fix the sqlite3_mutex_alloc() interface to return NULL (not segfault) when
operating in threadsafe mode.  (This is a general-purpose bug fix which
really ought to be ported to trunk.)

FossilOrigin-Name: 64840a3caf569959c9d5e63bdbc0cf675fda3882
2010-05-01 11:19:07 +00:00
drh
c81c11f62c Remove the obsolete "$Id:$" RCS identifier strings from the source code.
FossilOrigin-Name: f6c045f649036958078cb15cd9d5453680c82b0c
2009-11-10 01:30:52 +00:00
dan
1cf021e143 Change a couple of comments to use "SQLITE_MUTEX_OMIT" instead of OMIT_MUTEX.
FossilOrigin-Name: b733e939f785111eac987fe4a25ccfa512e4f0b4
2009-09-30 04:28:04 +00:00
drh
d0bc5d2aa6 Omit the mutexIsInit test variable when mutexes are disabled.
FossilOrigin-Name: 3ea10434434d27a1300ba2b58e2c47c54909f4ff
2009-09-10 22:30:53 +00:00
drh
fe5bdb36ab Add assert() statement to verify that new mutexes are not allocated when
the mutex subsystem is uninitialized.

FossilOrigin-Name: 1183c533571bc9c7ce56102b718f3e4f4e78019e
2009-09-10 17:45:00 +00:00
drh
e64ca7ba11 Code simplifications and comment improvements in support of structural
coverage testing. (CVS 6899)

FossilOrigin-Name: 945251798144110787b197f9eb552a2dd4a25cb4
2009-07-16 18:21:17 +00:00
danielk1977
0a54907159 Allow sqlite3_shutdown() to be called by a process before sqlite3_initialize() is. Prior to this commit such a call could segfault. (CVS 6296)
FossilOrigin-Name: 79431c58d964d6057c7f42f7c1df74f3df4493eb
2009-02-17 16:29:10 +00:00
drh
18472fa7b8 Remove the SQLITE_MUTEX_APPDEF compile-time option. The SQLITE_THREADSAFE=0
option always removes all mutex code.  For application-defined mutexes only,
use SQLITE_THREADSAFE=1 with SQLITE_MUTEX_NOOP=1.  Ticket #3421. (CVS 5779)

FossilOrigin-Name: 02a12eb1cfe9307c66556105a1a99d657cc01ab5
2008-10-07 15:25:48 +00:00
danielk1977
075c23af26 Begin adding support for the SQLITE_OMIT_WSD macro. Some (many) WSD variables still need wrappers added to them. (CVS 5652)
FossilOrigin-Name: 573d92abb9adb1c321ebc2fcadcf14374213b093
2008-09-01 18:34:20 +00:00
danielk1977
4a9d1f665f Shuffle some of the mutex related documentation in sqlite.h.in to match the new sqlite3_mutex_methods based API. (CVS 5244)
FossilOrigin-Name: 9cd7f8669a59c6096331229df2e2ad87e628abab
2008-06-19 08:51:23 +00:00
danielk1977
d025174f0b Remove public APIs sqlite3_mutex_init() and sqlite3_mutex_end(). This commit only changes the code, documentation is not updated yet. (CVS 5238)
FossilOrigin-Name: 42a2a8f49324e2e07b81fd08e24f636a2d98a961
2008-06-18 18:57:42 +00:00
danielk1977
bc10d7730c Add a call to sqlite3_initialize() to sqlite3_mutex_alloc() (CVS 5236)
FossilOrigin-Name: 8b23b719440aca9fca7e8f409729c3318ff3f80c
2008-06-18 18:08:39 +00:00
danielk1977
59f8c08ecc Implement the 'CONFIG_SINGLETHREAD' and 'CONFIG_MULTITHREAD' configuration modes. (CVS 5234)
FossilOrigin-Name: 5059644c4bc5f6679afd939e0bc26080f42a9918
2008-06-18 17:09:10 +00:00
danielk1977
1a9ed0b27a Add some test infrastructure and cases for the new mutex api. (CVS 5230)
FossilOrigin-Name: 262baee9952b28afe5dc77eb7365ebb11a480906
2008-06-18 09:45:56 +00:00
danielk1977
b2e36222af Add the SQLITE_CONFIG_MUTEX symbol for use with sqlite3_config(). (CVS 5228)
FossilOrigin-Name: af1835bb5f5e3fb78d782c7c287e20db169e883f
2008-06-17 18:57:49 +00:00
danielk1977
6d2ab0e431 Change the mutex interface to be pluggable. This is an incremental checkin, there are still changes to come. (CVS 5227)
FossilOrigin-Name: 597283637bcdc2398bf249b2bbc6ded47ad2de22
2008-06-17 17:21:18 +00:00
drh
e5ae5735c0 Continuing work on the new memory allocation subsystem.
Added routines for temporary memory allocation.  Right the btree
balance mechanism to only do one temporary allocation at a time. (CVS 5220)

FossilOrigin-Name: 65fe7b62cfe7d11cd667681a64c96fe7b2fe5685
2008-06-15 02:51:47 +00:00
drh
fec00eabb3 Continuing progress on the new memory allocation subsystem. Added the
sqlite3_mem_methods structure for defining new memory allocators at
run-time. (CVS 5219)

FossilOrigin-Name: f00305f4cd2f487f660f34a21c1c24a0b37c7275
2008-06-14 16:56:21 +00:00
drh
40257ffd0a Progress toward implementation of sqlite3_config() and a rework of the
mutex and memory allocation subsystems.  This is an incremental check-in. (CVS 5218)

FossilOrigin-Name: a03c5af115889f477e17187a198a7d2d40bc76bf
2008-06-13 18:24:27 +00:00
danielk1977
dfb316d432 Changes to delay freeing buffers associated with vdbe memory cells until either sqlite3_finalize() or sqlite3_release_memory() is called. (CVS 4922)
FossilOrigin-Name: 8c2f69521f13bc24cf005520efbe0589eeadd763
2008-03-26 18:34:43 +00:00
danielk1977
c15f0b3df7 Fix a problem in the noop-mutexes used for testing. (CVS 4420)
FossilOrigin-Name: 4dbeb915b3138194abd5554b52003162235f9a5f
2007-09-10 16:12:59 +00:00
drh
437b901371 Break up the mutex implementation into separate source files, one
each for unix, w32, and os2. (CVS 4312)

FossilOrigin-Name: fc5cd71aef5ac194f51d73350d773d532020967e
2007-08-28 16:34:42 +00:00
danielk1977
9f61c2f129 Modify sqlite3_release_memory() to use a global LRU list of pages. Untested. (CVS 4301)
FossilOrigin-Name: 5626ce0b5e249d48b56fdc4561ef663941eb23dc
2007-08-27 17:27:49 +00:00
drh
4b6b4ab0d2 Create a fresh pthread_mutexattr_t every time a recursive mutex is
allocated.  Ticket #2588. (CVS 4300)

FossilOrigin-Name: 3d746343add3feb9d208302a00b419d71d6ba246
2007-08-25 16:31:29 +00:00
drh
8bacf9743f Documentation and comment updates in sqlite.h.in and mutex.c. (CVS 4299)
FossilOrigin-Name: 7289079d6b4a7a160063e34c0f5e43637ef7476f
2007-08-25 16:21:29 +00:00
drh
058897a92e Use recursive mutexes in pthreads. If the pthreads implementation does not
support recursive mutexes, then you cannot compile SQLite with
SQLITE_THREADSAFE=1.  Ticket #2588. (CVS 4297)

FossilOrigin-Name: 1668284d151e78d16b0d83bf55dfd9d349a452a7
2007-08-25 14:39:45 +00:00
drh
dc3060fea3 Bug fix in the implementation of recursive mutexes using non-recursive
pthreads mutexes.  Ticket #2588. (CVS 4292)

FossilOrigin-Name: 7d24c3a5a7641df2bbb8c91a0bc5aa75c96a73fe
2007-08-25 03:59:08 +00:00
drh
bff101efd7 New mutex implementation for both Unix and windows. (CVS 4291)
FossilOrigin-Name: e144b81f699ca991cc4fa12a487156391db0b367
2007-08-24 20:46:59 +00:00
drh
27641703cc A complete run of quick.test with mutex debugging enabled. (CVS 4266)
FossilOrigin-Name: 783e07d561d1f5509de9475f3b9f38315f247002
2007-08-22 02:56:42 +00:00
drh
86f8c197dd Reenable the memory management logic. The quick.test script now runs with
SQLITE_MEMDEBUG and SQLITE_ENABLE_MEMORY_MANAGEMENT. 7 minor errors. (CVS 4265)

FossilOrigin-Name: 1914044b8832041f13b20ead613bd13725425d7a
2007-08-22 00:39:19 +00:00
drh
29278e3dbb Remove unnecessary #includes of "os.h". New mutex implementations. (CVS 4255)
FossilOrigin-Name: fbbd5bda544ffec4e1b43407b12e546235dc7873
2007-08-21 10:44:15 +00:00
drh
d677b3d688 Work toward multithreading support. Currently crashes quickly on a test. (CVS 4253)
FossilOrigin-Name: 1315bd8e125602275fb718780f9b2730bd37f6ab
2007-08-20 22:48:41 +00:00
drh
e53831d644 Begin adding mutexes. Compiles without SQLITE_OMIT_SHARED_CACHE but we
get an assertion fault on the shared cache testing. (CVS 4239)

FossilOrigin-Name: 4c1e9ffebe7c611a8b6a89153ae97ab9bca19ea3
2007-08-17 01:14:38 +00:00
drh
6bdec4afb4 Change the design of the mutex interface to allow for
both "fast" and "recursive" mutexes. (CVS 4238)

FossilOrigin-Name: 160593dcc5690af715b775c81137c6e09cca6454
2007-08-16 19:40:16 +00:00
danielk1977
1e5369531e More work on refactoring of malloc() interfaces. There are still many errors. (CVS 4233)
FossilOrigin-Name: 77b1671351fe94b0ebc126a63140643deae2aa64
2007-08-16 10:09:01 +00:00
drh
90f6a5beff Add initial implementations of mutex and memory subsystem modules. (CVS 4226)
FossilOrigin-Name: c0fa3769790af199a4c8715c80bb8ff900730520
2007-08-15 13:04:54 +00:00