]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Remove the thread specific data subsystem from the unix build. Remove
authordrh <drh@noemail.net>
Thu, 16 Aug 2007 13:01:44 +0000 (13:01 +0000)
committerdrh <drh@noemail.net>
Thu, 16 Aug 2007 13:01:44 +0000 (13:01 +0000)
legacy cruft from sqliteInt.h.  Use the new mutex subsystem in the PRNG. (CVS 4237)

FossilOrigin-Name: 3d60c14a32955b69e714a73372924d421899f83b

manifest
manifest.uuid
src/main.c
src/mem1.c
src/os_unix.c
src/sqlite.h.in
src/sqliteInt.h
src/test1.c
test/all.test
test/quick.test
test/tester.tcl

index 5d5c2d951c55a19a43b87e5d1315aef0de6748fd..f36c30f9cde3d4b3644b4dfdba2042a7f1ebbc4b 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Combine\ssqlite3DbOfVdbe()\sand\ssqlite3VdbeDb()\sinto\sa\ssingle\sfunction.\s(CVS\s4236)
-D 2007-08-16T12:24:02
+C Remove\sthe\sthread\sspecific\sdata\ssubsystem\sfrom\sthe\sunix\sbuild.\s\sRemove\nlegacy\scruft\sfrom\ssqliteInt.h.\s\sUse\sthe\snew\smutex\ssubsystem\sin\sthe\sPRNG.\s(CVS\s4237)
+D 2007-08-16T13:01:45
 F Makefile.in 0c0e53720f658c7a551046442dd7afba0b72bfbe
 F Makefile.linux-gcc 65241babba6faf1152bf86574477baab19190499
 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -85,10 +85,10 @@ F src/insert.c 633322aef1799f6604fa805e12488bc628570b0c
 F src/legacy.c 6013a7cb7da1b72550b3d35d4fc598b3c3e5b8c1
 F src/limits.h 71ab25f17e35e0a9f3f6f234b8ed49cc56731d35
 F src/loadext.c aa1c6e584d39cc241226ec9390387bc2d4a23e8f
-F src/main.c 47c6d4918394cf86e38502527ca652ac0602fac1
+F src/main.c 996df547489d4826f70629b16623d7408f55ecd7
 F src/malloc.c 613c65f12ff0ee4edd017aa458209ab7a23cd7b1
 F src/md5.c c5fdfa5c2593eaee2e32a5ce6c6927c986eaf217
-F src/mem1.c 6d4b9efe51242fcc63d410fb326824f1208b3d4e
+F src/mem1.c 08c4ee16393835b2d24ad39ce7b64c0f8c5b1df7
 F src/mem2.c d0ba3b23da2e95bced1818ade8a8a2dc9526111c
 F src/mutex.c b4f963ebdcb0622b3026937826afefd8a05884e1
 F src/os.c e2faefbe0f5a8ca5e3b1c49ee1b5c6cfa0f0e279
@@ -98,7 +98,7 @@ F src/os_os2.c cba4e96fadb949076c717108fe0599d1a3c2e446
 F src/os_os2.h e5f17dd69333632bbc3112881ea407c37d245eb3
 F src/os_test.c 49833426101f99aee4bb5f6a44b7c4b2029fda1c
 F src/os_test.h 903c93554c23d88f34f667f1979e4a1cee792af3
-F src/os_unix.c 7c7dcb7dcc93fcecf870d070fe9de8e2e7a44167
+F src/os_unix.c e685354a7f21cb47741efc6c681c5acea74597fc
 F src/os_unix.h 5768d56d28240d3fe4537fac08cc85e4fb52279e
 F src/os_win.c d868d5f9e95ec9c1b9e2a30c54c996053db6dddd
 F src/os_win.h 41a946bea10f61c158ce8645e7646b29d44f122b
@@ -112,13 +112,13 @@ F src/random.c 6119474a6f6917f708c1dee25b9a8e519a620e88
 F src/select.c 98c367bce3f38c5adfcc97de9ab5c79b0e5dc2b2
 F src/server.c 087b92a39d883e3fa113cae259d64e4c7438bc96
 F src/shell.c ac29402b538515fa4697282387be9c1205e6e9eb
-F src/sqlite.h.in 165913eb3426fbaa8a2a51d87f84593bfe5bee15
+F src/sqlite.h.in 1fb6748ebd4c36b8476c03791009585fd5cfcf3b
 F src/sqlite3ext.h 647a6b8a8f76ff6c9611e4a071531d8e63ff2d6b
-F src/sqliteInt.h 2649e0cbf0073e0d5c88080c642de4a3bac58c09
+F src/sqliteInt.h fa9baff32aef7ca1ecebcd014b3bd75c981829d0
 F src/sqliteLimit.h f14609c27636ebc217c9603ade26dbdd7d0f6afa
 F src/table.c c725e47f6f3092b9a7b569fc58e408e2173ee008
 F src/tclsqlite.c 0606c4f31711492eb4d7480a981eebb80914f3d9
-F src/test1.c f2969f28574433743f7439da62f0cfd9063fc26b
+F src/test1.c 8afb22ec54ee9f28c103c2a212e2e6970626995a
 F src/test2.c 4db48e4a487d4d18c2926d9600875613ad286ba8
 F src/test3.c b87e8fcce45e1d3153aae9f04236076b7707a714
 F src/test4.c d22cb3ab4f9fdfd0a595b70d5328cee923b7322c
@@ -156,7 +156,7 @@ F src/vtab.c 8d65679ab4ef3efce5d946d7f2d2dac5a33313b4
 F src/where.c 2776a0caf8cbbfd6ec79cfb1cd9bc25074055e5e
 F tclinstaller.tcl 4356d9d94d2b5ed5e68f9f0c80c4df3048dd7617
 F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
-F test/all.test 56bc526a6cbb262c5b678dd606de8c92ae39705e
+F test/all.test f25ae05da7bf15edfc456f7d002f3b34f60abd49
 F test/alter.test c2a9402e17a731e5294ef370214bd9f88351d18d
 F test/alter2.test 50c3f554b8236d179d72511c0a4f23c5eb7f2af3
 F test/alter3.test a6eec8f454be9b6ce73d8d7dc711453675a10ce7
@@ -346,7 +346,7 @@ F test/pragma2.test bb5aa7be00dae2c381fcc782358048a33c955793
 F test/printf.test 69d8cb0771a1a5e4d9d5dece12fc2c16179ac5e5
 F test/progress.test 5b075c3c790c7b2a61419bc199db87aaf48b8301 x
 F test/ptrchng.test 1c712dd6516e1377471744fa765e41c79a357da6
-F test/quick.test 3335fcc3ed543e54be0088b57f21f5f3632a512e
+F test/quick.test 38a6643edebfbe8f80127a66a6ba60021438cd2f
 F test/quote.test 215897dbe8de1a6f701265836d6601cc6ed103e6
 F test/rdonly.test b34db316525440d3b42c32e83942c02c37d28ef0
 F test/reindex.test 38b138abe36bf9a08c791ed44d9f76cd6b97b78b
@@ -382,7 +382,7 @@ F test/table.test dbdfd06aef054ad5aed8e57a782137d57d5c5528
 F test/tableapi.test 036575a98dcce7c92e9f39056839bbad8a715412
 F test/tclsqlite.test 593f3b30221e85786965d9e5670ae4f96b4e4159
 F test/temptable.test c36f3e5a94507abb64f7ba23deeb4e1a8a8c3821
-F test/tester.tcl 2ec34cd5b7916bb8f5dd33fa0e2e0412a499fdf4
+F test/tester.tcl 2169504ebe6066f7044a161468102aa5096a05cd
 F test/thread1.test 776c9e459b75ba905193b351926ac4019b049f35
 F test/thread2.test 6d7b30102d600f51b4055ee3a5a19228799049fb
 F test/threadtest1.c 6029d9c5567db28e6dc908a0c63099c3ba6c383b
@@ -529,7 +529,7 @@ F www/tclsqlite.tcl 8be95ee6dba05eabcd27a9d91331c803f2ce2130
 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
 F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
-P 5e2795d0eb8ea2a076b3014cfa9096aa7e8f69d7
-R b100c12e733e2a4acaaa8416cb3efc24
+P ba80ee59a72afe36817997de705ef81d876b6f35
+R 4dbfd96f907def879d1b3bfd1f2c5bd5
 U drh
-Z 7b53ce3745d3376527526db865d1b543
+Z 6248f8cb69e3663b94e130d7ac9b903a
index 3a75cd8fc8e4bab024ac0d1e8032174b81393ba2..7c4e7ae2a65f1ccf8274a53f9268050f609149dd 100644 (file)
@@ -1 +1 @@
-ba80ee59a72afe36817997de705ef81d876b6f35
\ No newline at end of file
+3d60c14a32955b69e714a73372924d421899f83b
\ No newline at end of file
index ead52dbf1dc839c7f756eddc5394f204c4705805..8457d0b4d70aec15502111e2fd2d92e5574f7f44 100644 (file)
@@ -14,7 +14,7 @@
 ** other files are for internal use by SQLite and should not be
 ** accessed by users of the library.
 **
-** $Id: main.c,v 1.381 2007/08/16 10:09:03 danielk1977 Exp $
+** $Id: main.c,v 1.382 2007/08/16 13:01:45 drh Exp $
 */
 #include "sqliteInt.h"
 #include "os.h"
@@ -1267,13 +1267,11 @@ int sqlite3_enable_shared_cache(int enable){
 /*
 ** This is a convenience routine that makes sure that all thread-specific
 ** data for this thread has been deallocated.
+**
+** SQLite no longer uses thread-specific data so this routine is now a
+** no-op.  It is retained for historical compatibility.
 */
 void sqlite3_thread_cleanup(void){
-  ThreadData *pTd = sqlite3OsThreadSpecificData(0);
-  if( pTd ){
-    memset(pTd, 0, sizeof(*pTd));
-    sqlite3OsThreadSpecificData(-1);
-  }
 }
 
 /*
index 64b45d2196ab8e1cf4d9e3bb7d80da4a99242d45..5767d8424af79c714ad1048f3e6c12463e3a4c24 100644 (file)
@@ -12,7 +12,7 @@
 ** This file contains the C functions that implement a memory
 ** allocation subsystem for use by SQLite.  
 **
-** $Id: mem1.c,v 1.3 2007/08/15 20:41:29 drh Exp $
+** $Id: mem1.c,v 1.4 2007/08/16 13:01:45 drh Exp $
 */
 
 /*
@@ -81,7 +81,7 @@ static struct {
 sqlite3_uint64 sqlite3_memory_used(void){
   sqlite3_uint64 n;
   if( mem.mutex==0 ){
-    mem.mutex = sqlite3_mutex_alloc(1);
+    mem.mutex = sqlite3_mutex_alloc(SQLITE_MUTEX_MEM);
   }
   sqlite3_mutex_enter(mem.mutex, 1);
   n = mem.nowUsed;
@@ -97,7 +97,7 @@ sqlite3_uint64 sqlite3_memory_used(void){
 sqlite3_uint64 sqlite3_memory_highwater(int resetFlag){
   sqlite3_uint64 n;
   if( mem.mutex==0 ){
-    mem.mutex = sqlite3_mutex_alloc(1);
+    mem.mutex = sqlite3_mutex_alloc(SQLITE_MUTEX_MEM);
   }
   sqlite3_mutex_enter(mem.mutex, 1);
   n = mem.mxUsed;
@@ -117,7 +117,7 @@ int sqlite3_memory_alarm(
   sqlite3_uint64 iThreshold
 ){
   if( mem.mutex==0 ){
-    mem.mutex = sqlite3_mutex_alloc(1);
+    mem.mutex = sqlite3_mutex_alloc(SQLITE_MUTEX_MEM);
   }
   sqlite3_mutex_enter(mem.mutex, 1);
   mem.alarmCallback = xCallback;
@@ -143,7 +143,7 @@ static void sqlite3MemsysAlarm(unsigned nByte){
 void *sqlite3_malloc(unsigned int nBytes){
   sqlite3_uint64 *p;
   if( mem.mutex==0 ){
-    mem.mutex = sqlite3_mutex_alloc(1);
+    mem.mutex = sqlite3_mutex_alloc(SQLITE_MUTEX_MEM);
   }
   sqlite3_mutex_enter(mem.mutex, 1);
   if( mem.nowUsed+nBytes>=mem.alarmThreshold ){
index 3bb8a5bb45a5be146d1f5604f721d4e5b64f59c8..71f4bafdd879768be5b3f7a436ef8c4585e4147f 100644 (file)
@@ -2816,112 +2816,6 @@ int sqlite3UnixInMutex(int thisThrd){
 #endif
 }
 
-/*
-** Remember the number of thread-specific-data blocks allocated.
-** Use this to verify that we are not leaking thread-specific-data.
-** Ticket #1601
-*/
-#ifdef SQLITE_TEST
-int sqlite3_tsd_count = 0;
-# ifdef SQLITE_UNIX_THREADS
-    static pthread_mutex_t tsd_counter_mutex = PTHREAD_MUTEX_INITIALIZER;
-#   define TSD_COUNTER(N) \
-             pthread_mutex_lock(&tsd_counter_mutex); \
-             sqlite3_tsd_count += N; \
-             pthread_mutex_unlock(&tsd_counter_mutex);
-# else
-#   define TSD_COUNTER(N)  sqlite3_tsd_count += N
-# endif
-#else
-# define TSD_COUNTER(N)  /* no-op */
-#endif
-
-/*
-** If called with allocateFlag>0, then return a pointer to thread
-** specific data for the current thread.  Allocate and zero the
-** thread-specific data if it does not already exist.
-**
-** If called with allocateFlag==0, then check the current thread
-** specific data.  Return it if it exists.  If it does not exist,
-** then return NULL.
-**
-** If called with allocateFlag<0, check to see if the thread specific
-** data is allocated and is all zero.  If it is then deallocate it.
-** Return a pointer to the thread specific data or NULL if it is
-** unallocated or gets deallocated.
-*/
-ThreadData *sqlite3UnixThreadSpecificData(int allocateFlag){
-  static const ThreadData zeroData = {0};  /* Initializer to silence warnings
-                                           ** from broken compilers */
-#ifdef SQLITE_UNIX_THREADS
-  static pthread_key_t key;
-  static int keyInit = 0;
-  ThreadData *pTsd;
-
-  if( !keyInit ){
-    sqlite3OsEnterMutex();
-    if( !keyInit ){
-      int rc;
-      rc = pthread_key_create(&key, 0);
-      if( rc ){
-        sqlite3OsLeaveMutex();
-        return 0;
-      }
-      keyInit = 1;
-    }
-    sqlite3OsLeaveMutex();
-  }
-
-  pTsd = pthread_getspecific(key);
-  if( allocateFlag>0 ){
-    if( pTsd==0 ){
-      if( !sqlite3TestMallocFail() ){
-        pTsd = sqlite3OsMalloc(sizeof(zeroData));
-      }
-#ifdef SQLITE_MEMDEBUG
-      sqlite3_isFail = 0;
-#endif
-      if( pTsd ){
-        *pTsd = zeroData;
-        pthread_setspecific(key, pTsd);
-        TSD_COUNTER(+1);
-      }
-    }
-  }else if( pTsd!=0 && allocateFlag<0 
-            && memcmp(pTsd, &zeroData, sizeof(ThreadData))==0 ){
-    sqlite3OsFree(pTsd);
-    pthread_setspecific(key, 0);
-    TSD_COUNTER(-1);
-    pTsd = 0;
-  }
-  return pTsd;
-#else
-  static ThreadData *pTsd = 0;
-  if( allocateFlag>0 ){
-    if( pTsd==0 ){
-#if 0
-      if( !sqlite3TestMallocFail() ){
-        pTsd = sqlite3OsMalloc( sizeof(zeroData) );
-      }
-#ifdef SQLITE_MEMDEBUG
-      sqlite3_isFail = 0;
-#endif
-#endif
-      if( pTsd ){
-        *pTsd = zeroData;
-        TSD_COUNTER(+1);
-      }
-    }
-  }else if( pTsd!=0 && allocateFlag<0
-            && memcmp(pTsd, &zeroData, sizeof(ThreadData))==0 ){
-    sqlite3OsFree(pTsd);
-    TSD_COUNTER(-1);
-    pTsd = 0;
-  }
-  return pTsd;
-#endif
-}
-
 /*
 ** The following variable, if set to a non-zero value, becomes the result
 ** returned from sqlite3OsCurrentTime().  This is used for testing.
@@ -2952,5 +2846,5 @@ int sqlite3UnixCurrentTime(double *prNow){
 #endif
   return 0;
 }
-
 #endif /* OS_UNIX */
index d378ed076c183e4b402e1e242debe13720f5bada..4789cc6697144b8a23f0cc14b55fc995b2f3f8a7 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.224 2007/08/15 17:08:46 danielk1977 Exp $
+** @(#) $Id: sqlite.h.in,v 1.225 2007/08/16 13:01:45 drh Exp $
 */
 #ifndef _SQLITE3_H_
 #define _SQLITE3_H_
@@ -3193,7 +3193,7 @@ int sqlite3_unregister_vfs(sqlite3_vfs*);
 ** to sqlite3_mutex_alloc() is usually zero, which causes
 ** any space required for the mutex to be obtained from
 ** sqlite3_malloc().  However if the argument is a positive
-** integer less than SQLITE_NUM_STATIC_MUTEX, then a pointer
+** integer less than or equal to SQLITE_MUTEX_STATIC_MAX, then a pointer
 ** to a static mutex is returned.  There are a finite number
 ** of static mutexes.  Static mutexes should not be passed
 ** to sqlite3_mutex_free().  Static mutexes are used internally
index da3a192f7eb2f0ba5312bcdfc433aba053dbceb6..716df8c97cfb8e6220395cc35f7794d3f6fb2796 100644 (file)
@@ -11,7 +11,7 @@
 *************************************************************************
 ** Internal interface definitions for SQLite.
 **
-** @(#) $Id: sqliteInt.h,v 1.588 2007/08/16 10:09:03 danielk1977 Exp $
+** @(#) $Id: sqliteInt.h,v 1.589 2007/08/16 13:01:45 drh Exp $
 */
 #ifndef _SQLITEINT_H_
 #define _SQLITEINT_H_
@@ -180,6 +180,16 @@ typedef INT16_TYPE i16;            /* 2-byte signed integer */
 typedef UINT8_TYPE u8;             /* 1-byte unsigned integer */
 typedef UINT8_TYPE i8;             /* 1-byte signed integer */
 
+/*
+** The mutex subsystem provides a handfull of static mutexes
+** that are identified by small positive integers.  The following
+** macros give symbolic names to those integers.
+*/
+#define SQLITE_MUTEX_MEM      1    /* Used by the memory allocator */
+#define SQLITE_MUTEX_PRNG     2    /* Used by pseudorandom generator */
+#define SQLITE_MUTEX_CACHE    3    /* Used by shared cache */
+#define SQLITE_MUTEX_STATIC_MAX 3
+
 /*
 ** Macros to determine whether the machine is big or little endian,
 ** evaluated at runtime.
@@ -219,74 +229,6 @@ struct BusyHandler {
 #include "btree.h"
 #include "pager.h"
 
-#ifdef SQLITE_MEMDEBUG
-/*
-** The following global variables are used for testing and debugging
-** only.  They only work if SQLITE_MEMDEBUG is defined.
-*/
-extern int sqlite3_nMalloc;      /* Number of sqliteMalloc() calls */
-extern int sqlite3_nFree;        /* Number of sqliteFree() calls */
-extern int sqlite3_iMallocFail;  /* Fail sqliteMalloc() after this many calls */
-extern int sqlite3_iMallocReset; /* Set iMallocFail to this when it reaches 0 */
-
-extern void *sqlite3_pFirst;         /* Pointer to linked list of allocations */
-extern int sqlite3_nMaxAlloc;        /* High water mark of ThreadData.nAlloc */
-extern int sqlite3_mallocDisallowed; /* assert() in sqlite3Malloc() if set */
-extern int sqlite3_isFail;           /* True if all malloc calls should fail */
-extern const char *sqlite3_zFile;    /* Filename to associate debug info with */
-extern int sqlite3_iLine;            /* Line number for debug info */
-
-#define ENTER_MALLOC (sqlite3_zFile = __FILE__, sqlite3_iLine = __LINE__)
-#define sqliteMalloc(x)          (ENTER_MALLOC, sqlite3Malloc(x,1))
-#define sqliteMallocRaw(x)       (ENTER_MALLOC, sqlite3MallocRaw(x,1))
-#define sqliteRealloc(x,y)       (ENTER_MALLOC, sqlite3Realloc(x,y))
-#define sqliteStrDup(x)          (ENTER_MALLOC, sqlite3StrDup(x))
-#define sqliteStrNDup(x,y)       (ENTER_MALLOC, sqlite3StrNDup(x,y))
-#define sqliteReallocOrFree(x,y) (ENTER_MALLOC, sqlite3ReallocOrFree(x,y))
-
-#else
-
-#define ENTER_MALLOC 0
-#define sqliteMalloc(x)          sqlite3Malloc(x,1)
-#define sqliteMallocRaw(x)       sqlite3MallocRaw(x,1)
-#define sqliteRealloc(x,y)       sqlite3Realloc(x,y)
-#define sqliteStrDup(x)          sqlite3StrDup(x)
-#define sqliteStrNDup(x,y)       sqlite3StrNDup(x,y)
-#define sqliteReallocOrFree(x,y) sqlite3ReallocOrFree(x,y)
-
-#endif
-
-/* Variable sqlite3MallocHasFailed is set to true after a malloc() 
-** failure occurs. 
-**
-** The sqlite3MallocFailed() macro returns true if a malloc has failed
-** in this thread since the last call to sqlite3ApiExit(), or false 
-** otherwise.
-*/
-extern int sqlite3MallocHasFailed;
-#define sqlite3MallocFailed() (sqlite3MallocHasFailed && sqlite3OsInMutex(1))
-
-#define sqliteFree(x)          sqlite3FreeX(x)
-#define sqliteAllocSize(x)     sqlite3AllocSize(x)
-
-/*
-** An instance of this structure might be allocated to store information
-** specific to a single thread.
-*/
-struct ThreadData {
-  int dummy;               /* So that this structure is never empty */
-
-#ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT
-  int nSoftHeapLimit;      /* Suggested max mem allocation.  No limit if <0 */
-  int nAlloc;              /* Number of bytes currently allocated */
-  Pager *pPager;           /* Linked list of all pagers in this thread */
-#endif
-
-#ifndef SQLITE_OMIT_SHARED_CACHE
-  u8 useSharedData;        /* True if shared pagers and schemas are enabled */
-  BtShared *pBtree;        /* Linked list of all currently open BTrees */
-#endif
-};
 
 /*
 ** Name of the master database table.  The master database table
index 2089c5117b481561de6bc0a345057477d825b1bb..791fa9c02c3634bae5a6517e55f826a2f38b9e6a 100644 (file)
@@ -13,7 +13,7 @@
 ** is not included in the SQLite library.  It is used for automated
 ** testing of the SQLite library.
 **
-** $Id: test1.c,v 1.261 2007/08/16 10:09:03 danielk1977 Exp $
+** $Id: test1.c,v 1.262 2007/08/16 13:01:45 drh Exp $
 */
 #include "sqliteInt.h"
 #include "tcl.h"
@@ -4320,7 +4320,6 @@ int Sqlitetest1_Init(Tcl_Interp *interp){
   extern int sqlite3_memUsed;
   extern int sqlite3_memMax;
   extern int sqlite3_like_count;
-  extern int sqlite3_tsd_count;
   extern int sqlite3_xferopt_count;
   extern int sqlite3_pager_readdb_count;
   extern int sqlite3_pager_writedb_count;
@@ -4362,8 +4361,6 @@ int Sqlitetest1_Init(Tcl_Interp *interp){
       (char*)&sqlite3_open_file_count, TCL_LINK_INT);
   Tcl_LinkVar(interp, "sqlite_current_time", 
       (char*)&sqlite3_current_time, TCL_LINK_INT);
-  Tcl_LinkVar(interp, "sqlite3_tsd_count",
-      (char*)&sqlite3_tsd_count, TCL_LINK_INT);
   Tcl_LinkVar(interp, "sqlite3_xferopt_count",
       (char*)&sqlite3_xferopt_count, TCL_LINK_INT);
   Tcl_LinkVar(interp, "sqlite3_pager_readdb_count",
index 7ed80de1b5d32eba8759745f6277503f3ed0b77d..ea86250615b3f4451df10e98c6e5a63ba5d45d35 100644 (file)
@@ -10,7 +10,7 @@
 #***********************************************************************
 # This file runs all tests.
 #
-# $Id: all.test,v 1.44 2007/06/18 12:22:43 drh Exp $
+# $Id: all.test,v 1.45 2007/08/16 13:01:45 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -100,12 +100,6 @@ for {set Counter 0} {$Counter<$COUNT && $nErr==0} {incr Counter} {
       lappend ::failList $tail
       set sqlite_open_file_count 0
     }
-    if {$::sqlite3_tsd_count} {
-      puts "Thread-specific data leak: $::sqlite3_tsd_count instances"
-      incr nErr
-      lappend ::failList $tail
-      set ::sqlite3_tsd_count 0
-    }
   }
   if {[info exists Leak]} {
     lappend LeakList $Leak
index 5f6f63a34fba5a619d3a8e1eddd0887d3cfe13d2..ffaeee09f693d651a9b9c3c0dab426b22b04ebc0 100644 (file)
@@ -6,7 +6,7 @@
 #***********************************************************************
 # This file runs all tests.
 #
-# $Id: quick.test,v 1.59 2007/06/18 12:22:43 drh Exp $
+# $Id: quick.test,v 1.60 2007/08/16 13:01:45 drh Exp $
 
 proc lshift {lvar} {
   upvar $lvar l
@@ -96,12 +96,6 @@ foreach testfile [lsort -dictionary [glob $testdir/*.test]] {
     lappend ::failList $tail
     set sqlite_open_file_count 0
   }
-  if {$::sqlite3_tsd_count} {
-    puts "Thread-specific data leak: $::sqlite3_tsd_count instances"
-    incr nErr
-    lappend ::failList $tail
-    set ::sqlite3_tsd_count 0
-  }
 }
 source $testdir/misuse.test
 
index 8abb56c8dfa622789f43ae8067089a920a39c4f6..f0cd5aa30cbd24465acd113ddbfd78382884ebfb 100644 (file)
@@ -11,7 +11,7 @@
 # This file implements some common TCL routines used for regression
 # testing the SQLite library
 #
-# $Id: tester.tcl,v 1.82 2007/08/10 16:41:09 drh Exp $
+# $Id: tester.tcl,v 1.83 2007/08/16 13:01:45 drh Exp $
 
 # Make sure tclsqlite3 was compiled correctly.  Abort now with an
 # error message if not.
@@ -206,12 +206,6 @@ proc finalize_testing {} {
     puts "soft-heap-limit set to $heaplimit"
   }
   sqlite3_soft_heap_limit 0
-  if {$::sqlite3_tsd_count} {
-     puts "Thread-specific data leak: $::sqlite3_tsd_count instances"
-     incr nErr
-  } else {
-     puts "Thread-specific data deallocated properly"
-  }
   incr nTest
   puts "$nErr errors out of $nTest tests"
   puts "Failures on these tests: $::failList"