mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-08-08 10:50:28 +00:00
Add mutex support to SQLite (reapply 05197afc
)
This commit is contained in:
parent
f5be9bd3cf
commit
17c5842c86
4 changed files with 45 additions and 2 deletions
1
third_party/sqlite3/fts3_write.c
vendored
1
third_party/sqlite3/fts3_write.c
vendored
|
@ -21,6 +21,7 @@
|
|||
#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3)
|
||||
|
||||
#include "libc/assert.h"
|
||||
#include "libc/fmt/conv.h"
|
||||
#include "libc/mem/alg.h"
|
||||
#include "libc/mem/mem.h"
|
||||
#include "libc/stdio/stdio.h"
|
||||
|
|
41
third_party/sqlite3/mutex.internal.h
vendored
Normal file
41
third_party/sqlite3/mutex.internal.h
vendored
Normal file
|
@ -0,0 +1,41 @@
|
|||
#ifndef COSMOPOLITAN_THIRD_PARTY_SQLITE3_MUTEX_INTERNAL_H_
|
||||
#define COSMOPOLITAN_THIRD_PARTY_SQLITE3_MUTEX_INTERNAL_H_
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
COSMOPOLITAN_C_START_
|
||||
|
||||
#if !SQLITE_THREADSAFE
|
||||
#define SQLITE_MUTEX_OMIT
|
||||
#endif
|
||||
#if SQLITE_THREADSAFE && !defined(SQLITE_MUTEX_NOOP)
|
||||
#if SQLITE_OS_UNIX
|
||||
#define SQLITE_MUTEX_PTHREADS
|
||||
#elif SQLITE_OS_WIN
|
||||
#define SQLITE_MUTEX_W32
|
||||
#else
|
||||
#define SQLITE_MUTEX_NOOP
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef SQLITE_MUTEX_OMIT
|
||||
/*
|
||||
** If this is a no-op implementation, implement everything as macros.
|
||||
*/
|
||||
#define sqlite3_mutex_alloc(X) ((sqlite3_mutex*)8)
|
||||
#define sqlite3_mutex_free(X)
|
||||
#define sqlite3_mutex_enter(X)
|
||||
#define sqlite3_mutex_try(X) SQLITE_OK
|
||||
#define sqlite3_mutex_leave(X)
|
||||
#define sqlite3_mutex_held(X) ((void)(X), 1)
|
||||
#define sqlite3_mutex_notheld(X) ((void)(X), 1)
|
||||
#define sqlite3MutexAlloc(X) ((sqlite3_mutex*)8)
|
||||
#define sqlite3MutexInit() SQLITE_OK
|
||||
#define sqlite3MutexEnd()
|
||||
#define MUTEX_LOGIC(X)
|
||||
#else
|
||||
#define MUTEX_LOGIC(X) X
|
||||
int sqlite3_mutex_held(sqlite3_mutex*);
|
||||
#endif /* defined(SQLITE_MUTEX_OMIT) */
|
||||
|
||||
COSMOPOLITAN_C_END_
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_THIRD_PARTY_SQLITE3_MUTEX_INTERNAL_H_ */
|
3
third_party/sqlite3/pcache1.c
vendored
3
third_party/sqlite3/pcache1.c
vendored
|
@ -81,7 +81,10 @@
|
|||
** show that method (3) with N==100 provides about a 5% performance boost for
|
||||
** common workloads.
|
||||
*/
|
||||
#include "libc/assert.h"
|
||||
#include "third_party/sqlite3/sqlite3.h"
|
||||
#include "third_party/sqlite3/sqliteInt.h"
|
||||
/* clang-format off */
|
||||
|
||||
typedef struct PCache1 PCache1;
|
||||
typedef struct PgHdr1 PgHdr1;
|
||||
|
|
2
third_party/sqlite3/sqlite3.h
vendored
2
third_party/sqlite3/sqlite3.h
vendored
|
@ -7916,10 +7916,8 @@ struct sqlite3_mutex_methods {
|
|||
** the appropriate thing to do. The sqlite3_mutex_notheld()
|
||||
** interface should also return 1 when given a NULL pointer.
|
||||
*/
|
||||
#ifndef NDEBUG
|
||||
SQLITE_API int sqlite3_mutex_held(sqlite3_mutex*);
|
||||
SQLITE_API int sqlite3_mutex_notheld(sqlite3_mutex*);
|
||||
#endif
|
||||
|
||||
/*
|
||||
** CAPI3REF: Mutex Types
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue