]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Enabled support for nesting mutexes and condition variables in higher-level synchroni...
authorBart Van Assche <bvanassche@acm.org>
Mon, 7 Jul 2008 16:53:45 +0000 (16:53 +0000)
committerBart Van Assche <bvanassche@acm.org>
Mon, 7 Jul 2008 16:53:45 +0000 (16:53 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8378

drd/tests/Makefile.am
drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3
drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3-b
drd/tests/tc20_verifywrap2.stderr.exp-glibc2.5
drd/tests/tc20_verifywrap2.stderr.exp-glibc2.5-ppc
drd/tests/tc20_verifywrap2.stderr.exp-glibc2.8

index 2a89af68c22a7a45828b4da53cb05053baf9c9ae..6c82843a76b9637ef688430a5cf0474d0fc9aaa6 100644 (file)
@@ -92,6 +92,8 @@ EXTRA_DIST =                                        \
        pth_inconsistent_cond_wait.vgtest           \
        pth_spinlock.stderr.exp                     \
        pth_spinlock.vgtest                         \
+       qt4_mutex.stderr.exp                        \
+       qt4_mutex.vgtest                            \
        recursive_mutex.stderr.exp                  \
        recursive_mutex.stdout.exp                  \
        recursive_mutex.vgtest                      \
@@ -176,7 +178,7 @@ AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/include \
               -I$(top_builddir)/include -I$(top_srcdir)/VEX/pub
 AM_CXXFLAGS = $(AM_CFLAGS)
 
-check_PROGRAMS_COMMON = \
+check_PROGRAMS = \
   drd_bitmap_test     \
   fp_race             \
   hg01_all_ok         \
@@ -229,16 +231,14 @@ check_PROGRAMS_COMMON = \
   tc24_nonzero_sem    \
   trylock
 
-check_PROGRAMS_OPENMP = omp_matinv omp_prime
+if HAVE_QTCORE
+check_PROGRAMS += qt4_mutex
+endif
 
 if HAVE_OPENMP
-check_PROGRAMS = $(check_PROGRAMS_COMMON) $(check_PROGRAMS_OPENMP)
-else
-check_PROGRAMS = $(check_PROGRAMS_COMMON)
+check_PROGRAMS += omp_matinv omp_prime
 endif
 
-#  tc14_laog_dinphils  -- hangs.
-
 
 drd_bitmap_test_SOURCES     = drd_bitmap_test.c
 drd_bitmap_test_CFLAGS      = $(AM_CFLAGS) -O2 \
@@ -306,6 +306,11 @@ pth_inconsistent_cond_wait_LDADD   = -lpthread
 pth_spinlock_SOURCES        = pth_spinlock.c
 pth_spinlock_LDADD          = -lpthread
 
+if HAVE_QTCORE
+qt4_mutex_SOURCES           = qt4_mutex.cpp
+qt4_mutex_LDADD             = -lpthread -lQtCore
+endif
+
 recursive_mutex_SOURCES     = recursive_mutex.c
 recursive_mutex_LDADD       = -lpthread
 
index 63c2d2a2a662bade3af0d0fcc35e85d3845c293f..e95829660341dd2495e4e23e3a6b4f1d498c3b70 100644 (file)
@@ -41,7 +41,7 @@ mutex 0x........ was first observed at:
    at 0x........: pthread_mutex_trylock (drd_pthread_intercepts.c:?)
    by 0x........: main (tc20_verifywrap.c:116)
 [1/1] post_mutex_lock invalid mutex 0x........ rc 0 owner 0 (locking failed)
-[1/1] pre_mutex_lock  invalid mutex 0x........ rc 0 owner 0
+[1/1] mutex_trylock   invalid mutex 0x........ rc 0 owner 0
 
 The object at address 0x........ is not a mutex.
    at 0x........: pthread_mutex_timedlock (drd_pthread_intercepts.c:?)
@@ -160,57 +160,57 @@ FIXME: can't figure out how to verify wrap of sem_post
 
 Destroying locked rwlock: rwlock 0x.........
    at 0x........: main (tc20_verifywrap.c:262)
-[1/1] mutex_destroy   error checking mutex 0x........
+[1/1] mutex_destroy   error checking mutex 0x........ rc 1 owner 1
 
 Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
    at 0x........: main (tc20_verifywrap.c:262)
-[1/1] mutex_destroy   invalid mutex 0x........
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 0
+[1/1] mutex_destroy   invalid mutex 0x........ rc 0 owner 0
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 0
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 0
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
 
index 9ed459c301689c0e8f3fce2a8049b99adf54568a..2a30a7df6d35c73aec610d78e39bc7295beba8ad 100644 (file)
@@ -41,7 +41,7 @@ mutex 0x........ was first observed at:
    at 0x........: pthread_mutex_trylock (drd_pthread_intercepts.c:?)
    by 0x........: main (tc20_verifywrap.c:116)
 [1/1] post_mutex_lock invalid mutex 0x........ rc 0 owner 0 (locking failed)
-[1/1] pre_mutex_lock  invalid mutex 0x........ rc 0 owner 0
+[1/1] mutex_trylock   invalid mutex 0x........ rc 0 owner 0
 
 The object at address 0x........ is not a mutex.
    at 0x........: pthread_mutex_timedlock (drd_pthread_intercepts.c:?)
index 4feb3de1fa91bd99de15f5de84c8e636d7662024..38088e7cd2a07e3c4317e66eba47d04fd91b75c5 100644 (file)
@@ -22,14 +22,14 @@ The object at address 0x........ is not a mutex.
    at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
    by 0x........: main (tc20_verifywrap.c:92)
 [1/1] mutex_init      mutex 0x........
-[1/1] pre_mutex_lock  mutex 0x........ rc 0 owner 0
+[1/1] mutex_trylock   mutex 0x........ rc 0 owner 0
 [1/1] post_mutex_lock mutex 0x........ rc 0 owner 0
-[1/1] mutex_destroy   mutex 0x........
+[1/1] mutex_destroy   mutex 0x........ rc 1 owner 1
 
 Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
    at 0x........: pthread_mutex_destroy (drd_pthread_intercepts.c:?)
    by 0x........: main (tc20_verifywrap.c:102)
-[1/1] pre_mutex_lock  invalid mutex 0x........ rc 0 owner 0
+[1/1] mutex_trylock   invalid mutex 0x........ rc 0 owner 0
 
 The object at address 0x........ is not a mutex.
    at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
@@ -47,7 +47,7 @@ mutex 0x........ was first observed at:
    at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
    by 0x........: main (tc20_verifywrap.c:108)
 [1/1] post_mutex_lock invalid mutex 0x........ rc 0 owner 0 (locking failed)
-[1/1] pre_mutex_lock  invalid mutex 0x........ rc 0 owner 0
+[1/1] mutex_trylock   invalid mutex 0x........ rc 0 owner 0
 
 The object at address 0x........ is not a mutex.
    at 0x........: pthread_mutex_timedlock (drd_pthread_intercepts.c:?)
@@ -166,57 +166,57 @@ FIXME: can't figure out how to verify wrap of sem_post
 
 Destroying locked rwlock: rwlock 0x.........
    at 0x........: main (tc20_verifywrap.c:262)
-[1/1] mutex_destroy   error checking mutex 0x........
+[1/1] mutex_destroy   error checking mutex 0x........ rc 1 owner 1
 
 Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
    at 0x........: main (tc20_verifywrap.c:262)
-[1/1] mutex_destroy   invalid mutex 0x........
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 0
+[1/1] mutex_destroy   invalid mutex 0x........ rc 0 owner 0
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 0
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 0
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
-[1/1] pre_mutex_lock  recursive mutex 0x........ rc 0 owner 1
+[1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 1
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
 
index 87e8b91301096978015594a941d0ab5ed5d8f8f0..f36c14a5adb53e3307c384917f869171f31f259a 100644 (file)
@@ -22,14 +22,14 @@ The object at address 0x........ is not a mutex.
    at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
    by 0x........: main (tc20_verifywrap.c:92)
 [1/1] mutex_init      mutex 0x........
-[1/1] pre_mutex_lock  mutex 0x........ rc 0 owner 0
+[1/1] mutex_trylock   mutex 0x........ rc 0 owner 0
 [1/1] post_mutex_lock mutex 0x........ rc 0 owner 0
-[1/1] mutex_destroy   mutex 0x........
+[1/1] mutex_destroy   mutex 0x........ rc 1 owner 1
 
 Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
    at 0x........: pthread_mutex_destroy (drd_pthread_intercepts.c:?)
    by 0x........: main (tc20_verifywrap.c:102)
-[1/1] pre_mutex_lock  invalid mutex 0x........ rc 0 owner 0
+[1/1] mutex_trylock   invalid mutex 0x........ rc 0 owner 0
 
 The object at address 0x........ is not a mutex.
    at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
@@ -47,7 +47,7 @@ mutex 0x........ was first observed at:
    at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
    by 0x........: main (tc20_verifywrap.c:108)
 [1/1] post_mutex_lock invalid mutex 0x........ rc 0 owner 0 (locking failed)
-[1/1] pre_mutex_lock  invalid mutex 0x........ rc 0 owner 0
+[1/1] mutex_trylock   invalid mutex 0x........ rc 0 owner 0
 
 The object at address 0x........ is not a mutex.
    at 0x........: pthread_mutex_timedlock (drd_pthread_intercepts.c:?)
index 7dcfa91188a38307f0a9733e1214710dd9942c20..61740ed5675618210b2bb46cc691e3c95c954770 100644 (file)
@@ -22,14 +22,14 @@ The object at address 0x........ is not a mutex.
    at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
    by 0x........: main (tc20_verifywrap.c:92)
 [1/1] mutex_init      mutex 0x........
-[1/1] pre_mutex_lock  mutex 0x........ rc 0 owner 0
+[1/1] mutex_trylock   mutex 0x........ rc 0 owner 0
 [1/1] post_mutex_lock mutex 0x........ rc 0 owner 0
-[1/1] mutex_destroy   mutex 0x........
+[1/1] mutex_destroy   mutex 0x........ rc 1 owner 1
 
 Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
    at 0x........: pthread_mutex_destroy (drd_pthread_intercepts.c:?)
    by 0x........: main (tc20_verifywrap.c:102)
-[1/1] pre_mutex_lock  invalid mutex 0x........ rc 0 owner 0
+[1/1] mutex_trylock   invalid mutex 0x........ rc 0 owner 0
 
 The object at address 0x........ is not a mutex.
    at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
@@ -47,7 +47,7 @@ mutex 0x........ was first observed at:
    at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
    by 0x........: main (tc20_verifywrap.c:108)
 [1/1] post_mutex_lock invalid mutex 0x........ rc 0 owner 0 (locking failed)
-[1/1] pre_mutex_lock  invalid mutex 0x........ rc 0 owner 0
+[1/1] mutex_trylock   invalid mutex 0x........ rc 0 owner 0
 
 The object at address 0x........ is not a mutex.
    at 0x........: pthread_mutex_timedlock (drd_pthread_intercepts.c:?)