|
Mark Wielaard |
a4c803 |
commit c69445c1e07425e827ce936d7c416f7972b51aa2
|
|
Mark Wielaard |
a4c803 |
Author: iraisr <iraisr@a5019735-40e9-0310-863c-91ae7b9d1cf9>
|
|
Mark Wielaard |
a4c803 |
Date: Tue Jan 12 20:31:15 2016 +0000
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
Fix typo in Helgrind's wrapper of pthread_spin_destroy().
|
|
Mark Wielaard |
a4c803 |
Patch provided by: Jason Dillaman <dillaman@redhat.com>.
|
|
Mark Wielaard |
a4c803 |
Fixes BZ #357871.
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15756 a5019735-40e9-0310-863c-91ae7b9d1cf9
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
diff --git a/helgrind/hg_intercepts.c b/helgrind/hg_intercepts.c
|
|
Mark Wielaard |
a4c803 |
index fd53208..ff36e93 100644
|
|
Mark Wielaard |
a4c803 |
--- a/helgrind/hg_intercepts.c
|
|
Mark Wielaard |
a4c803 |
+++ b/helgrind/hg_intercepts.c
|
|
Mark Wielaard |
a4c803 |
@@ -1854,13 +1854,13 @@ static int pthread_spin_destroy_WRK(pthread_spinlock_t *lock)
|
|
Mark Wielaard |
a4c803 |
return ret;
|
|
Mark Wielaard |
a4c803 |
}
|
|
Mark Wielaard |
a4c803 |
#if defined(VGO_linux)
|
|
Mark Wielaard |
a4c803 |
- PTH_FUNC(int, pthreadZuspinZusdestroy, // pthread_spin_destroy
|
|
Mark Wielaard |
a4c803 |
+ PTH_FUNC(int, pthreadZuspinZudestroy, // pthread_spin_destroy
|
|
Mark Wielaard |
a4c803 |
pthread_spinlock_t *lock) {
|
|
Mark Wielaard |
a4c803 |
return pthread_spin_destroy_WRK(lock);
|
|
Mark Wielaard |
a4c803 |
}
|
|
Mark Wielaard |
a4c803 |
#elif defined(VGO_darwin)
|
|
Mark Wielaard |
a4c803 |
#elif defined(VGO_solaris)
|
|
Mark Wielaard |
a4c803 |
- PTH_FUNC(int, pthreadZuspinZusdestroy, // pthread_spin_destroy
|
|
Mark Wielaard |
a4c803 |
+ PTH_FUNC(int, pthreadZuspinZudestroy, // pthread_spin_destroy
|
|
Mark Wielaard |
a4c803 |
pthread_spinlock_t *lock) {
|
|
Mark Wielaard |
a4c803 |
return pthread_spin_destroy_WRK(lock);
|
|
Mark Wielaard |
a4c803 |
}
|
|
Mark Wielaard |
a4c803 |
diff --git a/helgrind/tests/tc20_verifywrap.c b/helgrind/tests/tc20_verifywrap.c
|
|
Mark Wielaard |
a4c803 |
index f71c7f8..c110000 100644
|
|
Mark Wielaard |
a4c803 |
--- a/helgrind/tests/tc20_verifywrap.c
|
|
Mark Wielaard |
a4c803 |
+++ b/helgrind/tests/tc20_verifywrap.c
|
|
Mark Wielaard |
a4c803 |
@@ -29,6 +29,11 @@
|
|
Mark Wielaard |
a4c803 |
#endif
|
|
Mark Wielaard |
a4c803 |
#endif /* __sun__ */
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
+typedef union {
|
|
Mark Wielaard |
a4c803 |
+ pthread_spinlock_t spinlock;
|
|
Mark Wielaard |
a4c803 |
+ pthread_rwlock_t rwlock;
|
|
Mark Wielaard |
a4c803 |
+} spin_rw_lock;
|
|
Mark Wielaard |
a4c803 |
+
|
|
Mark Wielaard |
a4c803 |
short unprotected = 0;
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
void* lazy_child ( void* v ) {
|
|
Mark Wielaard |
a4c803 |
@@ -236,6 +241,20 @@ int main ( void )
|
|
Mark Wielaard |
a4c803 |
r= pthread_rwlock_init( &rwl3, NULL ); assert(!r);
|
|
Mark Wielaard |
a4c803 |
r= pthread_rwlock_rdlock( &rwl3 ); assert(!r);
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
+ /* --------- pthread_spin_* --------- */
|
|
Mark Wielaard |
a4c803 |
+
|
|
Mark Wielaard |
a4c803 |
+ fprintf(stderr,
|
|
Mark Wielaard |
a4c803 |
+ "\n---------------- pthread_spin_* ----------------\n\n");
|
|
Mark Wielaard |
a4c803 |
+
|
|
Mark Wielaard |
a4c803 |
+ /* The following sequence verifies correct wrapping of pthread_spin_init()
|
|
Mark Wielaard |
a4c803 |
+ and pthread_spin_destroy(). */
|
|
Mark Wielaard |
a4c803 |
+ spin_rw_lock srwl1;
|
|
Mark Wielaard |
a4c803 |
+ pthread_spin_init(&srwl1.spinlock, PTHREAD_PROCESS_PRIVATE);
|
|
Mark Wielaard |
a4c803 |
+ pthread_spin_destroy(&srwl1.spinlock);
|
|
Mark Wielaard |
a4c803 |
+
|
|
Mark Wielaard |
a4c803 |
+ pthread_rwlock_init(&srwl1.rwlock, NULL);
|
|
Mark Wielaard |
a4c803 |
+ pthread_rwlock_destroy(&srwl1.rwlock);
|
|
Mark Wielaard |
a4c803 |
+
|
|
Mark Wielaard |
a4c803 |
/* ------------- sem_* ------------- */
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
/* This is pretty lame, and duplicates tc18_semabuse.c. */
|
|
Mark Wielaard |
a4c803 |
diff --git a/helgrind/tests/tc20_verifywrap.stderr.exp b/helgrind/tests/tc20_verifywrap.stderr.exp
|
|
Mark Wielaard |
a4c803 |
index d9019d4..372daea 100644
|
|
Mark Wielaard |
a4c803 |
--- a/helgrind/tests/tc20_verifywrap.stderr.exp
|
|
Mark Wielaard |
a4c803 |
+++ b/helgrind/tests/tc20_verifywrap.stderr.exp
|
|
Mark Wielaard |
a4c803 |
@@ -14,21 +14,21 @@ Thread #x is the program's root thread
|
|
Mark Wielaard |
a4c803 |
Thread #x was created
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_create@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:81)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:86)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
Possible data race during write of size 2 at 0x........ by thread #x
|
|
Mark Wielaard |
a4c803 |
Locks held: none
|
|
Mark Wielaard |
a4c803 |
- at 0x........: main (tc20_verifywrap.c:83)
|
|
Mark Wielaard |
a4c803 |
+ at 0x........: main (tc20_verifywrap.c:88)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
This conflicts with a previous write of size 2 by thread #x
|
|
Mark Wielaard |
a4c803 |
Locks held: none
|
|
Mark Wielaard |
a4c803 |
- at 0x........: racy_child (tc20_verifywrap.c:39)
|
|
Mark Wielaard |
a4c803 |
+ at 0x........: racy_child (tc20_verifywrap.c:44)
|
|
Mark Wielaard |
a4c803 |
by 0x........: mythread_wrapper (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
Location 0x........ is 0 bytes inside global var "unprotected"
|
|
Mark Wielaard |
a4c803 |
- declared at tc20_verifywrap.c:32
|
|
Mark Wielaard |
a4c803 |
+ declared at tc20_verifywrap.c:37
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -36,7 +36,7 @@ Thread #x's call to pthread_join failed
|
|
Mark Wielaard |
a4c803 |
with error code 35 (EDEADLK: Resource deadlock would occur)
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_join_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_join (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:88)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:93)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
---------------- pthread_mutex_lock et al ----------------
|
|
Mark Wielaard |
a4c803 |
@@ -46,14 +46,14 @@ Thread #x's call to pthread_join failed
|
|
Mark Wielaard |
a4c803 |
Thread #x's call to pthread_mutex_init failed
|
|
Mark Wielaard |
a4c803 |
with error code 95 (EOPNOTSUPP: Operation not supported on transport endpoint)
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_mutex_init (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:102)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:107)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_mutex_destroy of a locked mutex
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_destroy_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:112)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:117)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -61,7 +61,7 @@ Thread #x's call to pthread_mutex_destroy failed
|
|
Mark Wielaard |
a4c803 |
with error code 16 (EBUSY: Device or resource busy)
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_destroy_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:112)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:117)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -69,7 +69,7 @@ Thread #x's call to pthread_mutex_lock failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_lock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_lock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:118)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:123)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -77,7 +77,7 @@ Thread #x's call to pthread_mutex_trylock failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_trylock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_trylock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:126)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:131)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -85,14 +85,14 @@ Thread #x's call to pthread_mutex_timedlock failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_timedlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_timedlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:131)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:136)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
Thread #x unlocked an invalid lock at 0x........
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:135)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:140)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -100,7 +100,7 @@ Thread #x's call to pthread_mutex_unlock failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:135)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:140)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
---------------- pthread_cond_wait et al ----------------
|
|
Mark Wielaard |
a4c803 |
@@ -110,7 +110,7 @@ Thread #x's call to pthread_mutex_unlock failed
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_cond_{timed}wait called with un-held mutex
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:157)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:162)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -118,14 +118,14 @@ Thread #x's call to pthread_cond_wait failed
|
|
Mark Wielaard |
a4c803 |
with error code 1 (EPERM: Operation not permitted)
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:157)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:162)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_signal@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:162)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:167)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
FIXME: can't figure out how to verify wrap of pthread_cond_signal
|
|
Mark Wielaard |
a4c803 |
@@ -135,7 +135,7 @@ FIXME: can't figure out how to verify wrap of pthread_cond_signal
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_broadcast_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_broadcast@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:168)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:173)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
|
|
Mark Wielaard |
a4c803 |
@@ -145,7 +145,7 @@ FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_cond_{timed}wait called with un-held mutex
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:175)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:180)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -153,7 +153,7 @@ Thread #x's call to pthread_cond_timedwait failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:175)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:180)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
---------------- pthread_rwlock_* ----------------
|
|
Mark Wielaard |
a4c803 |
@@ -164,13 +164,13 @@ Thread #x unlocked a not-locked lock at 0x........
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:189)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:194)
|
|
Mark Wielaard |
a4c803 |
Lock at 0x........ was first observed
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:188)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:193)
|
|
Mark Wielaard |
a4c803 |
Location 0x........ is 0 bytes inside local var "rwl"
|
|
Mark Wielaard |
a4c803 |
- declared at tc20_verifywrap.c:52, in frame #x of thread x
|
|
Mark Wielaard |
a4c803 |
+ declared at tc20_verifywrap.c:57, in frame #x of thread x
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
(1) no error on next line
|
|
Mark Wielaard |
a4c803 |
@@ -182,13 +182,13 @@ Thread #x unlocked a not-locked lock at 0x........
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:206)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:211)
|
|
Mark Wielaard |
a4c803 |
Lock at 0x........ was first observed
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:196)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:201)
|
|
Mark Wielaard |
a4c803 |
Location 0x........ is 0 bytes inside local var "rwl2"
|
|
Mark Wielaard |
a4c803 |
- declared at tc20_verifywrap.c:53, in frame #x of thread x
|
|
Mark Wielaard |
a4c803 |
+ declared at tc20_verifywrap.c:58, in frame #x of thread x
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
(4) no error on next line
|
|
Mark Wielaard |
a4c803 |
@@ -202,14 +202,17 @@ Thread #x unlocked a not-locked lock at 0x........
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:227)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:232)
|
|
Mark Wielaard |
a4c803 |
Lock at 0x........ was first observed
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:196)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:201)
|
|
Mark Wielaard |
a4c803 |
Location 0x........ is 0 bytes inside local var "rwl2"
|
|
Mark Wielaard |
a4c803 |
- declared at tc20_verifywrap.c:53, in frame #x of thread x
|
|
Mark Wielaard |
a4c803 |
+ declared at tc20_verifywrap.c:58, in frame #x of thread x
|
|
Mark Wielaard |
a4c803 |
+
|
|
Mark Wielaard |
a4c803 |
+
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
+---------------- pthread_spin_* ----------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
---------------- sem_* ----------------
|
|
Mark Wielaard |
a4c803 |
@@ -220,7 +223,7 @@ Thread #x's call to sem_init failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: sem_init_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: sem_init@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:248)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:267)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
FIXME: can't figure out how to verify wrap of sem_destroy
|
|
Mark Wielaard |
a4c803 |
@@ -230,7 +233,7 @@ FIXME: can't figure out how to verify wrap of sem_destroy
|
|
Mark Wielaard |
a4c803 |
Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without prior sem_post
|
|
Mark Wielaard |
a4c803 |
at 0x........: sem_wait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: sem_wait (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:262)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:281)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -239,7 +242,7 @@ Thread #x's call to sem_post failed
|
|
Mark Wielaard |
a4c803 |
at 0x........: sem_post_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: sem_post (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:265)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:284)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
FIXME: can't figure out how to verify wrap of sem_post
|
|
Mark Wielaard |
a4c803 |
diff --git a/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.18 b/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.18
|
|
Mark Wielaard |
a4c803 |
index f109673..b823d40 100644
|
|
Mark Wielaard |
a4c803 |
--- a/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.18
|
|
Mark Wielaard |
a4c803 |
+++ b/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.18
|
|
Mark Wielaard |
a4c803 |
@@ -14,21 +14,21 @@ Thread #x is the program's root thread
|
|
Mark Wielaard |
a4c803 |
Thread #x was created
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_create@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:81)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:86)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
Possible data race during write of size 2 at 0x........ by thread #x
|
|
Mark Wielaard |
a4c803 |
Locks held: none
|
|
Mark Wielaard |
a4c803 |
- at 0x........: main (tc20_verifywrap.c:83)
|
|
Mark Wielaard |
a4c803 |
+ at 0x........: main (tc20_verifywrap.c:88)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
This conflicts with a previous write of size 2 by thread #x
|
|
Mark Wielaard |
a4c803 |
Locks held: none
|
|
Mark Wielaard |
a4c803 |
- at 0x........: racy_child (tc20_verifywrap.c:39)
|
|
Mark Wielaard |
a4c803 |
+ at 0x........: racy_child (tc20_verifywrap.c:44)
|
|
Mark Wielaard |
a4c803 |
by 0x........: mythread_wrapper (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
Location 0x........ is 0 bytes inside global var "unprotected"
|
|
Mark Wielaard |
a4c803 |
- declared at tc20_verifywrap.c:32
|
|
Mark Wielaard |
a4c803 |
+ declared at tc20_verifywrap.c:37
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -36,7 +36,7 @@ Thread #x's call to pthread_join failed
|
|
Mark Wielaard |
a4c803 |
with error code 35 (EDEADLK: Resource deadlock would occur)
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_join_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_join (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:88)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:93)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
---------------- pthread_mutex_lock et al ----------------
|
|
Mark Wielaard |
a4c803 |
@@ -46,14 +46,14 @@ Thread #x's call to pthread_join failed
|
|
Mark Wielaard |
a4c803 |
Thread #x's call to pthread_mutex_init failed
|
|
Mark Wielaard |
a4c803 |
with error code 95 (EOPNOTSUPP: Operation not supported on transport endpoint)
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_mutex_init (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:102)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:107)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_mutex_destroy of a locked mutex
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_destroy_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:112)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:117)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -61,7 +61,7 @@ Thread #x's call to pthread_mutex_lock failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_lock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_lock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:118)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:123)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -69,7 +69,7 @@ Thread #x's call to pthread_mutex_trylock failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_trylock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_trylock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:126)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:131)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -77,14 +77,14 @@ Thread #x's call to pthread_mutex_timedlock failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_timedlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_timedlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:131)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:136)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
Thread #x unlocked an invalid lock at 0x........
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:135)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:140)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -92,7 +92,7 @@ Thread #x's call to pthread_mutex_unlock failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:135)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:140)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
---------------- pthread_cond_wait et al ----------------
|
|
Mark Wielaard |
a4c803 |
@@ -102,7 +102,7 @@ Thread #x's call to pthread_mutex_unlock failed
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_cond_{timed}wait called with un-held mutex
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:157)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:162)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -110,14 +110,14 @@ Thread #x's call to pthread_cond_wait failed
|
|
Mark Wielaard |
a4c803 |
with error code 1 (EPERM: Operation not permitted)
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:157)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:162)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_signal@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:162)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:167)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
FIXME: can't figure out how to verify wrap of pthread_cond_signal
|
|
Mark Wielaard |
a4c803 |
@@ -127,7 +127,7 @@ FIXME: can't figure out how to verify wrap of pthread_cond_signal
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_broadcast_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_broadcast@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:168)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:173)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
|
|
Mark Wielaard |
a4c803 |
@@ -137,7 +137,7 @@ FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_cond_{timed}wait called with un-held mutex
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:175)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:180)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -145,7 +145,7 @@ Thread #x's call to pthread_cond_timedwait failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:175)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:180)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
---------------- pthread_rwlock_* ----------------
|
|
Mark Wielaard |
a4c803 |
@@ -156,11 +156,11 @@ Thread #x unlocked a not-locked lock at 0x........
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:189)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:194)
|
|
Mark Wielaard |
a4c803 |
Lock at 0x........ was first observed
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:188)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:193)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
(1) no error on next line
|
|
Mark Wielaard |
a4c803 |
(2) no error on next line
|
|
Mark Wielaard |
a4c803 |
@@ -171,11 +171,11 @@ Thread #x unlocked a not-locked lock at 0x........
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:206)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:211)
|
|
Mark Wielaard |
a4c803 |
Lock at 0x........ was first observed
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:196)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:201)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
(4) no error on next line
|
|
Mark Wielaard |
a4c803 |
(5) no error on next line
|
|
Mark Wielaard |
a4c803 |
@@ -187,11 +187,15 @@ Thread #x unlocked a not-locked lock at 0x........
|
|
Mark Wielaard |
a4c803 |
Thread #x unlocked a not-locked lock at 0x........
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:227)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:232)
|
|
Mark Wielaard |
a4c803 |
Lock at 0x........ was first observed
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:196)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:201)
|
|
Mark Wielaard |
a4c803 |
+
|
|
Mark Wielaard |
a4c803 |
+
|
|
Mark Wielaard |
a4c803 |
+
|
|
Mark Wielaard |
a4c803 |
+---------------- pthread_spin_* ----------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
---------------- sem_* ----------------
|
|
Mark Wielaard |
a4c803 |
@@ -202,7 +206,7 @@ Thread #x's call to sem_init failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: sem_init_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: sem_init@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:243)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:267)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
FIXME: can't figure out how to verify wrap of sem_destroy
|
|
Mark Wielaard |
a4c803 |
@@ -212,7 +216,7 @@ FIXME: can't figure out how to verify wrap of sem_destroy
|
|
Mark Wielaard |
a4c803 |
Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without prior sem_post
|
|
Mark Wielaard |
a4c803 |
at 0x........: sem_wait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: sem_wait (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:257)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:281)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -220,7 +224,7 @@ Thread #x's call to sem_post failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: sem_post_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: sem_post (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:260)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:284)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
FIXME: can't figure out how to verify wrap of sem_post
|
|
Mark Wielaard |
a4c803 |
diff --git a/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.21 b/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.21
|
|
Mark Wielaard |
a4c803 |
index 7f4eb21..2a2ee9b 100644
|
|
Mark Wielaard |
a4c803 |
--- a/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.21
|
|
Mark Wielaard |
a4c803 |
+++ b/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.21
|
|
Mark Wielaard |
a4c803 |
@@ -14,21 +14,21 @@ Thread #x is the program's root thread
|
|
Mark Wielaard |
a4c803 |
Thread #x was created
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_create@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:81)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:86)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
Possible data race during write of size 2 at 0x........ by thread #x
|
|
Mark Wielaard |
a4c803 |
Locks held: none
|
|
Mark Wielaard |
a4c803 |
- at 0x........: main (tc20_verifywrap.c:83)
|
|
Mark Wielaard |
a4c803 |
+ at 0x........: main (tc20_verifywrap.c:88)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
This conflicts with a previous write of size 2 by thread #x
|
|
Mark Wielaard |
a4c803 |
Locks held: none
|
|
Mark Wielaard |
a4c803 |
- at 0x........: racy_child (tc20_verifywrap.c:39)
|
|
Mark Wielaard |
a4c803 |
+ at 0x........: racy_child (tc20_verifywrap.c:44)
|
|
Mark Wielaard |
a4c803 |
by 0x........: mythread_wrapper (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
Location 0x........ is 0 bytes inside global var "unprotected"
|
|
Mark Wielaard |
a4c803 |
- declared at tc20_verifywrap.c:32
|
|
Mark Wielaard |
a4c803 |
+ declared at tc20_verifywrap.c:37
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -36,7 +36,7 @@ Thread #x's call to pthread_join failed
|
|
Mark Wielaard |
a4c803 |
with error code 35 (EDEADLK: Resource deadlock would occur)
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_join_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_join (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:88)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:93)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
---------------- pthread_mutex_lock et al ----------------
|
|
Mark Wielaard |
a4c803 |
@@ -46,14 +46,14 @@ Thread #x's call to pthread_join failed
|
|
Mark Wielaard |
a4c803 |
Thread #x's call to pthread_mutex_init failed
|
|
Mark Wielaard |
a4c803 |
with error code 95 (EOPNOTSUPP: Operation not supported on transport endpoint)
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_mutex_init (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:102)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:107)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_mutex_destroy of a locked mutex
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_destroy_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:112)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:117)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -61,7 +61,7 @@ Thread #x's call to pthread_mutex_destroy failed
|
|
Mark Wielaard |
a4c803 |
with error code 16 (EBUSY: Device or resource busy)
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_destroy_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:112)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:117)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -69,7 +69,7 @@ Thread #x's call to pthread_mutex_lock failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_lock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_lock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:118)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:123)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -77,7 +77,7 @@ Thread #x's call to pthread_mutex_trylock failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_trylock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_trylock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:126)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:131)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -85,14 +85,14 @@ Thread #x's call to pthread_mutex_timedlock failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_timedlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_timedlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:131)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:136)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
Thread #x unlocked an invalid lock at 0x........
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:135)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:140)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -100,7 +100,7 @@ Thread #x's call to pthread_mutex_unlock failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:135)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:140)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
---------------- pthread_cond_wait et al ----------------
|
|
Mark Wielaard |
a4c803 |
@@ -110,7 +110,7 @@ Thread #x's call to pthread_mutex_unlock failed
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_cond_{timed}wait called with un-held mutex
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:157)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:162)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -118,14 +118,14 @@ Thread #x's call to pthread_cond_wait failed
|
|
Mark Wielaard |
a4c803 |
with error code 1 (EPERM: Operation not permitted)
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:157)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:162)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_signal@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:162)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:167)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
FIXME: can't figure out how to verify wrap of pthread_cond_signal
|
|
Mark Wielaard |
a4c803 |
@@ -135,7 +135,7 @@ FIXME: can't figure out how to verify wrap of pthread_cond_signal
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_broadcast_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_broadcast@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:168)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:173)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
|
|
Mark Wielaard |
a4c803 |
@@ -145,7 +145,7 @@ FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_cond_{timed}wait called with un-held mutex
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:175)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:180)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -153,7 +153,7 @@ Thread #x's call to pthread_cond_timedwait failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:175)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:180)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
---------------- pthread_rwlock_* ----------------
|
|
Mark Wielaard |
a4c803 |
@@ -164,13 +164,13 @@ Thread #x unlocked a not-locked lock at 0x........
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:189)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:194)
|
|
Mark Wielaard |
a4c803 |
Lock at 0x........ was first observed
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:188)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:193)
|
|
Mark Wielaard |
a4c803 |
Location 0x........ is 0 bytes inside local var "rwl"
|
|
Mark Wielaard |
a4c803 |
- declared at tc20_verifywrap.c:52, in frame #x of thread x
|
|
Mark Wielaard |
a4c803 |
+ declared at tc20_verifywrap.c:57, in frame #x of thread x
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
(1) no error on next line
|
|
Mark Wielaard |
a4c803 |
@@ -182,13 +182,13 @@ Thread #x unlocked a not-locked lock at 0x........
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:206)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:211)
|
|
Mark Wielaard |
a4c803 |
Lock at 0x........ was first observed
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:196)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:201)
|
|
Mark Wielaard |
a4c803 |
Location 0x........ is 0 bytes inside local var "rwl2"
|
|
Mark Wielaard |
a4c803 |
- declared at tc20_verifywrap.c:53, in frame #x of thread x
|
|
Mark Wielaard |
a4c803 |
+ declared at tc20_verifywrap.c:58, in frame #x of thread x
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
(4) no error on next line
|
|
Mark Wielaard |
a4c803 |
@@ -202,14 +202,17 @@ Thread #x unlocked a not-locked lock at 0x........
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:227)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:232)
|
|
Mark Wielaard |
a4c803 |
Lock at 0x........ was first observed
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:196)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:201)
|
|
Mark Wielaard |
a4c803 |
Location 0x........ is 0 bytes inside local var "rwl2"
|
|
Mark Wielaard |
a4c803 |
- declared at tc20_verifywrap.c:53, in frame #x of thread x
|
|
Mark Wielaard |
a4c803 |
+ declared at tc20_verifywrap.c:58, in frame #x of thread x
|
|
Mark Wielaard |
a4c803 |
+
|
|
Mark Wielaard |
a4c803 |
+
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
+---------------- pthread_spin_* ----------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
---------------- sem_* ----------------
|
|
Mark Wielaard |
a4c803 |
@@ -220,7 +223,7 @@ Thread #x's call to sem_init failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: sem_init_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: sem_init@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:248)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:267)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
FIXME: can't figure out how to verify wrap of sem_destroy
|
|
Mark Wielaard |
a4c803 |
@@ -230,7 +233,7 @@ FIXME: can't figure out how to verify wrap of sem_destroy
|
|
Mark Wielaard |
a4c803 |
Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without prior sem_post
|
|
Mark Wielaard |
a4c803 |
at 0x........: sem_wait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: sem_wait (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:262)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:281)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
FIXME: can't figure out how to verify wrap of sem_post
|
|
Mark Wielaard |
a4c803 |
diff --git a/helgrind/tests/tc20_verifywrap.stderr.exp-s390x b/helgrind/tests/tc20_verifywrap.stderr.exp-s390x
|
|
Mark Wielaard |
a4c803 |
index 3f60f79..f19215e 100644
|
|
Mark Wielaard |
a4c803 |
--- a/helgrind/tests/tc20_verifywrap.stderr.exp-s390x
|
|
Mark Wielaard |
a4c803 |
+++ b/helgrind/tests/tc20_verifywrap.stderr.exp-s390x
|
|
Mark Wielaard |
a4c803 |
@@ -15,22 +15,22 @@ Thread #x was created
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_create_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_create@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:81)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:86)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
Possible data race during write of size 2 at 0x........ by thread #x
|
|
Mark Wielaard |
a4c803 |
Locks held: none
|
|
Mark Wielaard |
a4c803 |
- at 0x........: main (tc20_verifywrap.c:83)
|
|
Mark Wielaard |
a4c803 |
+ at 0x........: main (tc20_verifywrap.c:88)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
This conflicts with a previous write of size 2 by thread #x
|
|
Mark Wielaard |
a4c803 |
Locks held: none
|
|
Mark Wielaard |
a4c803 |
- at 0x........: racy_child (tc20_verifywrap.c:39)
|
|
Mark Wielaard |
a4c803 |
+ at 0x........: racy_child (tc20_verifywrap.c:44)
|
|
Mark Wielaard |
a4c803 |
by 0x........: mythread_wrapper (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
Location 0x........ is 0 bytes inside global var "unprotected"
|
|
Mark Wielaard |
a4c803 |
-declared at tc20_verifywrap.c:32
|
|
Mark Wielaard |
a4c803 |
+declared at tc20_verifywrap.c:37
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -38,7 +38,7 @@ Thread #x's call to pthread_join failed
|
|
Mark Wielaard |
a4c803 |
with error code 35 (EDEADLK: Resource deadlock would occur)
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_join_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_join (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:88)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:93)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
---------------- pthread_mutex_lock et al ----------------
|
|
Mark Wielaard |
a4c803 |
@@ -48,14 +48,14 @@ Thread #x's call to pthread_join failed
|
|
Mark Wielaard |
a4c803 |
Thread #x's call to pthread_mutex_init failed
|
|
Mark Wielaard |
a4c803 |
with error code 95 (EOPNOTSUPP: Operation not supported on transport endpoint)
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_mutex_init (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:102)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:107)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_mutex_destroy of a locked mutex
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_destroy_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:112)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:117)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -63,7 +63,7 @@ Thread #x's call to pthread_mutex_destroy failed
|
|
Mark Wielaard |
a4c803 |
with error code 16 (EBUSY: Device or resource busy)
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_destroy_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:112)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:117)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -71,7 +71,7 @@ Thread #x's call to pthread_mutex_lock failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_lock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_lock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:118)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:123)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -79,7 +79,7 @@ Thread #x's call to pthread_mutex_trylock failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_trylock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_trylock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:126)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:131)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -87,14 +87,14 @@ Thread #x's call to pthread_mutex_timedlock failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_timedlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_timedlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:131)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:136)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
Thread #x unlocked an invalid lock at 0x........
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:135)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:140)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -102,7 +102,7 @@ Thread #x's call to pthread_mutex_unlock failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:135)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:140)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
---------------- pthread_cond_wait et al ----------------
|
|
Mark Wielaard |
a4c803 |
@@ -112,7 +112,7 @@ Thread #x's call to pthread_mutex_unlock failed
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_cond_{timed}wait called with un-held mutex
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:157)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:162)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -120,14 +120,14 @@ Thread #x's call to pthread_cond_wait failed
|
|
Mark Wielaard |
a4c803 |
with error code 1 (EPERM: Operation not permitted)
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:157)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:162)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_signal@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:162)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:167)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
FIXME: can't figure out how to verify wrap of pthread_cond_signal
|
|
Mark Wielaard |
a4c803 |
@@ -137,7 +137,7 @@ FIXME: can't figure out how to verify wrap of pthread_cond_signal
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_broadcast_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_broadcast@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:168)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:173)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
|
|
Mark Wielaard |
a4c803 |
@@ -147,7 +147,7 @@ FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_cond_{timed}wait called with un-held mutex
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:175)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:180)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -155,7 +155,7 @@ Thread #x's call to pthread_cond_timedwait failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:175)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:180)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
---------------- pthread_rwlock_* ----------------
|
|
Mark Wielaard |
a4c803 |
@@ -166,11 +166,11 @@ Thread #x unlocked a not-locked lock at 0x........
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:189)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:194)
|
|
Mark Wielaard |
a4c803 |
Lock at 0x........ was first observed
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:188)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:193)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
(1) no error on next line
|
|
Mark Wielaard |
a4c803 |
(2) no error on next line
|
|
Mark Wielaard |
a4c803 |
@@ -181,11 +181,11 @@ Thread #x unlocked a not-locked lock at 0x........
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:206)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:211)
|
|
Mark Wielaard |
a4c803 |
Lock at 0x........ was first observed
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:196)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:201)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
(4) no error on next line
|
|
Mark Wielaard |
a4c803 |
(5) no error on next line
|
|
Mark Wielaard |
a4c803 |
@@ -198,11 +198,15 @@ Thread #x unlocked a not-locked lock at 0x........
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:227)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:232)
|
|
Mark Wielaard |
a4c803 |
Lock at 0x........ was first observed
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:196)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:201)
|
|
Mark Wielaard |
a4c803 |
+
|
|
Mark Wielaard |
a4c803 |
+
|
|
Mark Wielaard |
a4c803 |
+
|
|
Mark Wielaard |
a4c803 |
+---------------- pthread_spin_* ----------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
---------------- sem_* ----------------
|
|
Mark Wielaard |
a4c803 |
@@ -213,7 +217,7 @@ Thread #x's call to sem_init failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: sem_init_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: sem_init@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:243)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:267)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
FIXME: can't figure out how to verify wrap of sem_destroy
|
|
Mark Wielaard |
a4c803 |
@@ -223,7 +227,7 @@ FIXME: can't figure out how to verify wrap of sem_destroy
|
|
Mark Wielaard |
a4c803 |
Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without prior sem_post
|
|
Mark Wielaard |
a4c803 |
at 0x........: sem_wait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: sem_wait (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:257)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:281)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
FIXME: can't figure out how to verify wrap of sem_post
|
|
Mark Wielaard |
a4c803 |
diff --git a/helgrind/tests/tc20_verifywrap.stderr.exp-solaris b/helgrind/tests/tc20_verifywrap.stderr.exp-solaris
|
|
Mark Wielaard |
a4c803 |
index 921ebf5..072cc18 100644
|
|
Mark Wielaard |
a4c803 |
--- a/helgrind/tests/tc20_verifywrap.stderr.exp-solaris
|
|
Mark Wielaard |
a4c803 |
+++ b/helgrind/tests/tc20_verifywrap.stderr.exp-solaris
|
|
Mark Wielaard |
a4c803 |
@@ -14,21 +14,21 @@ Thread #x is the program's root thread
|
|
Mark Wielaard |
a4c803 |
Thread #x was created
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_create@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:81)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:86)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
Possible data race during write of size 2 at 0x........ by thread #x
|
|
Mark Wielaard |
a4c803 |
Locks held: none
|
|
Mark Wielaard |
a4c803 |
- at 0x........: main (tc20_verifywrap.c:83)
|
|
Mark Wielaard |
a4c803 |
+ at 0x........: main (tc20_verifywrap.c:88)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
This conflicts with a previous write of size 2 by thread #x
|
|
Mark Wielaard |
a4c803 |
Locks held: none
|
|
Mark Wielaard |
a4c803 |
- at 0x........: racy_child (tc20_verifywrap.c:39)
|
|
Mark Wielaard |
a4c803 |
+ at 0x........: racy_child (tc20_verifywrap.c:44)
|
|
Mark Wielaard |
a4c803 |
by 0x........: mythread_wrapper (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
Location 0x........ is 0 bytes inside global var "unprotected"
|
|
Mark Wielaard |
a4c803 |
- declared at tc20_verifywrap.c:32
|
|
Mark Wielaard |
a4c803 |
+ declared at tc20_verifywrap.c:37
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -36,7 +36,7 @@ Thread #x's call to pthread_join failed
|
|
Mark Wielaard |
a4c803 |
with error code 45 (EDEADLK: Resource deadlock would occur)
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_join_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_join (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:88)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:93)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
---------------- pthread_mutex_lock et al ----------------
|
|
Mark Wielaard |
a4c803 |
@@ -46,14 +46,14 @@ Thread #x's call to pthread_join failed
|
|
Mark Wielaard |
a4c803 |
Thread #x's call to mutex_init failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_mutex_init (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:102)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:107)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_mutex_destroy of a locked mutex
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_destroy_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:112)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:117)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -61,7 +61,7 @@ Thread #x's call to pthread_mutex_lock failed
|
|
Mark Wielaard |
a4c803 |
with error code 1 (EPERM: Operation not permitted)
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_lock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_lock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:118)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:123)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -69,7 +69,7 @@ Thread #x's call to pthread_mutex_trylock failed
|
|
Mark Wielaard |
a4c803 |
with error code 1 (EPERM: Operation not permitted)
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_trylock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_trylock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:126)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:131)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -77,14 +77,14 @@ Thread #x's call to pthread_mutex_timedlock failed
|
|
Mark Wielaard |
a4c803 |
with error code 1 (EPERM: Operation not permitted)
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_timedlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_timedlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:131)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:136)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
Thread #x unlocked an invalid lock at 0x........
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:135)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:140)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -92,7 +92,7 @@ Thread #x's call to pthread_mutex_unlock failed
|
|
Mark Wielaard |
a4c803 |
with error code 1 (EPERM: Operation not permitted)
|
|
Mark Wielaard |
a4c803 |
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:135)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:140)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
---------------- pthread_cond_wait et al ----------------
|
|
Mark Wielaard |
a4c803 |
@@ -102,7 +102,7 @@ Thread #x's call to pthread_mutex_unlock failed
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_cond_{timed}wait called with un-held mutex
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:157)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:162)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -110,14 +110,14 @@ Thread #x's call to pthread_cond_wait failed
|
|
Mark Wielaard |
a4c803 |
with error code 1 (EPERM: Operation not permitted)
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:157)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:162)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_signal@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:162)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:167)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
FIXME: can't figure out how to verify wrap of pthread_cond_signal
|
|
Mark Wielaard |
a4c803 |
@@ -127,7 +127,7 @@ FIXME: can't figure out how to verify wrap of pthread_cond_signal
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_broadcast_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_broadcast@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:168)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:173)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
|
|
Mark Wielaard |
a4c803 |
@@ -137,7 +137,7 @@ FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
|
|
Mark Wielaard |
a4c803 |
Thread #x: pthread_cond_{timed}wait called with un-held mutex
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:175)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:180)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
@@ -145,7 +145,7 @@ Thread #x's call to pthread_cond_timedwait failed
|
|
Mark Wielaard |
a4c803 |
with error code 1 (EPERM: Operation not permitted)
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:175)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:180)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
---------------- pthread_rwlock_* ----------------
|
|
Mark Wielaard |
a4c803 |
@@ -156,13 +156,13 @@ Thread #x unlocked a not-locked lock at 0x........
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:189)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:194)
|
|
Mark Wielaard |
a4c803 |
Lock at 0x........ was first observed
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_init (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:188)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:193)
|
|
Mark Wielaard |
a4c803 |
Location 0x........ is 0 bytes inside rwl.__pthread_rwlock_readers,
|
|
Mark Wielaard |
a4c803 |
- declared at tc20_verifywrap.c:52, in frame #x of thread x
|
|
Mark Wielaard |
a4c803 |
+ declared at tc20_verifywrap.c:57, in frame #x of thread x
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
@@ -172,7 +172,7 @@ Thread #x's call to pthread_rwlock_unlock failed
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:189)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:194)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
(1) no error on next line
|
|
Mark Wielaard |
a4c803 |
(2) no error on next line
|
|
Mark Wielaard |
a4c803 |
@@ -183,13 +183,13 @@ Thread #x unlocked a not-locked lock at 0x........
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:206)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:211)
|
|
Mark Wielaard |
a4c803 |
Lock at 0x........ was first observed
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_init (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:196)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:201)
|
|
Mark Wielaard |
a4c803 |
Location 0x........ is 0 bytes inside rwl2.__pthread_rwlock_readers,
|
|
Mark Wielaard |
a4c803 |
- declared at tc20_verifywrap.c:53, in frame #x of thread x
|
|
Mark Wielaard |
a4c803 |
+ declared at tc20_verifywrap.c:58, in frame #x of thread x
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
@@ -199,7 +199,7 @@ Thread #x's call to pthread_rwlock_unlock failed
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:206)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:211)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
(4) no error on next line
|
|
Mark Wielaard |
a4c803 |
(5) no error on next line
|
|
Mark Wielaard |
a4c803 |
@@ -212,13 +212,13 @@ Thread #x unlocked a not-locked lock at 0x........
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:227)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:232)
|
|
Mark Wielaard |
a4c803 |
Lock at 0x........ was first observed
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_init (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:196)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:201)
|
|
Mark Wielaard |
a4c803 |
Location 0x........ is 0 bytes inside rwl2.__pthread_rwlock_readers,
|
|
Mark Wielaard |
a4c803 |
- declared at tc20_verifywrap.c:53, in frame #x of thread x
|
|
Mark Wielaard |
a4c803 |
+ declared at tc20_verifywrap.c:58, in frame #x of thread x
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
----------------------------------------------------------------
|
|
Mark Wielaard |
a4c803 |
@@ -228,7 +228,11 @@ Thread #x's call to pthread_rwlock_unlock failed
|
|
Mark Wielaard |
a4c803 |
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:227)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:232)
|
|
Mark Wielaard |
a4c803 |
+
|
|
Mark Wielaard |
a4c803 |
+
|
|
Mark Wielaard |
a4c803 |
+
|
|
Mark Wielaard |
a4c803 |
+---------------- pthread_spin_* ----------------
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
---------------- sem_* ----------------
|
|
Mark Wielaard |
a4c803 |
@@ -239,7 +243,7 @@ Thread #x's call to sema_init failed
|
|
Mark Wielaard |
a4c803 |
with error code 22 (EINVAL: Invalid argument)
|
|
Mark Wielaard |
a4c803 |
at 0x........: sema_init (hg_intercepts.c:...)
|
|
Mark Wielaard |
a4c803 |
...
|
|
Mark Wielaard |
a4c803 |
- by 0x........: main (tc20_verifywrap.c:248)
|
|
Mark Wielaard |
a4c803 |
+ by 0x........: main (tc20_verifywrap.c:267)
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
|
|
Mark Wielaard |
a4c803 |
FIXME: can't figure out how to verify wrap of sem_destroy
|