aboutsummaryrefslogtreecommitdiff
path: root/src/mutex_unix.c
diff options
context:
space:
mode:
authordan <dan@noemail.net>2010-08-10 07:12:26 +0000
committerdan <dan@noemail.net>2010-08-10 07:12:26 +0000
commit84612fec1c94840c7175a4aa03ffac5505960467 (patch)
treee06f371c95257313d8f7226501701478e5e657a6 /src/mutex_unix.c
parent9b8d02727a1b1a613d89528a5f062f5ceaf8d534 (diff)
downloadsqlite-84612fec1c94840c7175a4aa03ffac5505960467.tar.gz
sqlite-84612fec1c94840c7175a4aa03ffac5505960467.zip
Changes to debugging code in mutex_unix.c and mutex_w32.c to make an assert() statement threadsafe.
FossilOrigin-Name: e82e32bd431ccacd276df8241592eb5519d87122
Diffstat (limited to 'src/mutex_unix.c')
-rw-r--r--src/mutex_unix.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/mutex_unix.c b/src/mutex_unix.c
index a1ebc3b75..196975e71 100644
--- a/src/mutex_unix.c
+++ b/src/mutex_unix.c
@@ -235,6 +235,7 @@ static void pthreadMutexEnter(sqlite3_mutex *p){
*/
pthread_mutex_lock(&p->mutex);
#if SQLITE_MUTEX_NREF
+ assert( p->nRef>0 || p->owner==0 );
p->owner = pthread_self();
p->nRef++;
#endif
@@ -307,6 +308,7 @@ static void pthreadMutexLeave(sqlite3_mutex *p){
assert( pthreadMutexHeld(p) );
#if SQLITE_MUTEX_NREF
p->nRef--;
+ if( p->nRef==0 ) p->owner = 0;
#endif
assert( p->nRef==0 || p->id==SQLITE_MUTEX_RECURSIVE );