From 61f6dc608f34a36e77b537a4051361010ed5a481 Mon Sep 17 00:00:00 2001 From: drh Date: Thu, 30 Aug 2007 17:15:37 +0000 Subject: [PATCH] Make mutex functions available to loadable extensions. Fix the amalgamation generator to include the latest source files. (CVS 4346) FossilOrigin-Name: 293a3f837bd6c6a26f694a9210e59ace23abb6bb --- manifest | 16 ++++++++-------- manifest.uuid | 2 +- src/loadext.c | 5 +++++ src/sqlite3ext.h | 12 +++++++++++- tool/mksqlite3c.tcl | 6 +++++- 5 files changed, 30 insertions(+), 11 deletions(-) diff --git a/manifest b/manifest index f6627dd9c0..a7af0a5f8b 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sa\smemory\sleak\sin\sthe\swin32\sOS\sdriver.\s\sTicket\s#2602.\s(CVS\s4345) -D 2007-08-30T16:46:04 +C Make\smutex\sfunctions\savailable\sto\sloadable\sextensions.\s\sFix\sthe\namalgamation\sgenerator\sto\sinclude\sthe\slatest\ssource\sfiles.\s(CVS\s4346) +D 2007-08-30T17:15:38 F Makefile.in bfcc303429a5d9dcd552d807ee016c77427418c3 F Makefile.linux-gcc 65241babba6faf1152bf86574477baab19190499 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028 @@ -98,7 +98,7 @@ F src/insert.c b11e5ca0d68bf2a7a56f47a052a0ee67dd4e2f89 F src/journal.c 573911e274738b3fda813d4f0a6e319f8a9ecd36 F src/legacy.c 4ac53191fad2e3c4d59bde1228879b2dc5a96d66 F src/limits.h 71ab25f17e35e0a9f3f6f234b8ed49cc56731d35 -F src/loadext.c 5f6ad0aa48f3d03b23776891f837c695f8ca72ab +F src/loadext.c d13c65529df08fdcb57d563d05fa241455841fa2 F src/main.c 9276bbdc90d17cd8b15c4cb227dc09c968779391 F src/malloc.c de4e77fe70a9a0ac47a1c3a874422b107231bf31 F src/md5.c c5fdfa5c2593eaee2e32a5ce6c6927c986eaf217 @@ -131,7 +131,7 @@ F src/select.c e5cc50e8d22b2490c4fb47f2ef08a9b43bcb52d9 F src/server.c 087b92a39d883e3fa113cae259d64e4c7438bc96 F src/shell.c ac29402b538515fa4697282387be9c1205e6e9eb F src/sqlite.h.in cc69ce66ee2b9d9bf2637ae4769d1c4891e1a0d1 -F src/sqlite3ext.h 284ec370dd03b9ac9a3af97165587de9f35bda00 +F src/sqlite3ext.h 3e5368b64a28602ef8abf9cfb6c8c1643903f238 F src/sqliteInt.h 5dbb7a934a88dfa9893e2627f4821b0464f5edc0 F src/sqliteLimit.h 1bcbbdfa856f8b71b561abb31edb864b0eca1d12 F src/table.c 1aeb9eab57b4235db86fe15a35dec76fb445a9c4 @@ -498,7 +498,7 @@ F tool/memleak2.awk 9cc20c8e8f3c675efac71ea0721ee6874a1566e8 F tool/memleak3.tcl 7707006ee908cffff210c98158788d85bb3fcdbf F tool/mkkeywordhash.c ef93810fc41fb3d3dbacf9a33a29be88ea99ffa9 F tool/mkopts.tcl 66ac10d240cc6e86abd37dc908d50382f84ff46e x -F tool/mksqlite3c.tcl 5e150ba5652a114a4fd3c87c908eca31131897c3 +F tool/mksqlite3c.tcl 1b2fc352849823600fea9474245591e96733e557 F tool/mksqlite3internalh.tcl 47737a925fb02fce43e2c0a14b3cc17574a4d44a F tool/omittest.tcl e6b3d6a1285f9813bc1dea53bb522b4b72774710 F tool/opcodeDoc.awk b3a2a3d5d3075b8bd90b7afe24283efdd586659c @@ -568,7 +568,7 @@ F www/tclsqlite.tcl 8be95ee6dba05eabcd27a9d91331c803f2ce2130 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5 -P c073b78040e5833de038dea464ac87c7358b8b51 -R 30bc014a6024147ec249bf381de3c5ae +P 1f80cf5e759af68b854d4de2e97badf546a465ca +R 05dd9b169879bf8fee202d2f8994f350 U drh -Z e78a8479742fa9ce1b1dff972c5bc640 +Z 56110931b83628f9e147d4d36691a985 diff --git a/manifest.uuid b/manifest.uuid index b2bd1345e3..b6e4d462d3 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -1f80cf5e759af68b854d4de2e97badf546a465ca \ No newline at end of file +293a3f837bd6c6a26f694a9210e59ace23abb6bb \ No newline at end of file diff --git a/src/loadext.c b/src/loadext.c index ec59b91f96..17b5411735 100644 --- a/src/loadext.c +++ b/src/loadext.c @@ -258,6 +258,11 @@ const sqlite3_api_routines sqlite3_apis = { sqlite3_create_collation_v2, sqlite3_memory_highwater, sqlite3_memory_used, + sqlite3_mutex_alloc, + sqlite3_mutex_enter, + sqlite3_mutex_free, + sqlite3_mutex_leave, + sqlite3_mutex_try, sqlite3_open_v2, sqlite3_release_memory, sqlite3_result_error_nomem, diff --git a/src/sqlite3ext.h b/src/sqlite3ext.h index 896a5c248f..667650acac 100644 --- a/src/sqlite3ext.h +++ b/src/sqlite3ext.h @@ -15,7 +15,7 @@ ** as extensions by SQLite should #include this file instead of ** sqlite3.h. ** -** @(#) $Id: sqlite3ext.h,v 1.15 2007/08/30 16:23:19 drh Exp $ +** @(#) $Id: sqlite3ext.h,v 1.16 2007/08/30 17:15:38 drh Exp $ */ #ifndef _SQLITE3EXT_H_ #define _SQLITE3EXT_H_ @@ -167,6 +167,11 @@ struct sqlite3_api_routines { int (*create_collation_v2)(sqlite3*,const char*,int,void*,int(*)(void*,int,const void*,int,const void*),void(*)(void*)); sqlite3_int64 (*memory_highwater)(int); sqlite3_int64 (*memory_used)(void); + sqlite3_mutex *(*mutex_alloc)(int); + void (*mutex_enter)(sqlite3_mutex*); + void (*mutex_free)(sqlite3_mutex*); + void (*mutex_leave)(sqlite3_mutex*); + int (*mutex_try)(sqlite3_mutex*); int (*open_v2)(const char*,sqlite3**,int,const char*); int (*release_memory)(int); void (*result_error_nomem)(sqlite3_context*); @@ -321,6 +326,11 @@ struct sqlite3_api_routines { #define sqlite3_create_collation_v2 sqlite3_api->create_collation_v2 #define sqlite3_memory_highwater sqlite3_api->memory_highwater #define sqlite3_memory_used sqlite3_api->memory_used +#define sqlite3_mutex_alloc sqlite3_api->mutex_alloc +#define sqlite3_mutex_enter sqlite3_api->mutex_enter +#define sqlite3_mutex_free sqlite3_api->mutex_free +#define sqlite3_mutex_leave sqlite3_api->mutex_leave +#define sqlite3_mutex_try sqlite3_api->mutex_try #define sqlite3_open_v2 sqlite3_api->open_v2 #define sqlite3_release_memory sqlite3_api->release_memory #define sqlite3_result_error_nomem sqlite3_api->result_error_nomem diff --git a/tool/mksqlite3c.tcl b/tool/mksqlite3c.tcl index e9dd756f86..258beacc92 100644 --- a/tool/mksqlite3c.tcl +++ b/tool/mksqlite3c.tcl @@ -203,6 +203,9 @@ foreach file { mem1.c mem2.c mutex.c + mutex_os2.c + mutex_unix.c + mutex_w32.c malloc.c printf.c random.c @@ -216,7 +219,8 @@ foreach file { os_win.c pager.c - + + btmutex.c btree.c vdbefifo.c