1 2 Thread #x is the program's root thread 3 4 Thread #x unlocked a not-locked lock at 0x........ 5 at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) 6 by 0x........: nearly_main (tc09_bad_unlock.c:27) 7 by 0x........: main (tc09_bad_unlock.c:49) 8 Lock at 0x........ was first observed 9 at 0x........: pthread_mutex_init (hg_intercepts.c:...) 10 by 0x........: nearly_main (tc09_bad_unlock.c:23) 11 by 0x........: main (tc09_bad_unlock.c:49) 12 13 Thread #x was created 14 ... 15 by 0x........: pthread_create@* (hg_intercepts.c:...) 16 by 0x........: nearly_main (tc09_bad_unlock.c:35) 17 by 0x........: main (tc09_bad_unlock.c:49) 18 19 Thread #x unlocked lock at 0x........ currently held by thread #x 20 at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) 21 by 0x........: child_fn (tc09_bad_unlock.c:11) 22 by 0x........: mythread_wrapper (hg_intercepts.c:...) 23 ... 24 Lock at 0x........ was first observed 25 at 0x........: pthread_mutex_init (hg_intercepts.c:...) 26 by 0x........: nearly_main (tc09_bad_unlock.c:31) 27 by 0x........: main (tc09_bad_unlock.c:49) 28 29 Thread #x unlocked an invalid lock at 0x........ 30 at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) 31 by 0x........: nearly_main (tc09_bad_unlock.c:41) 32 by 0x........: main (tc09_bad_unlock.c:49) 33 34 Thread #x's call to pthread_mutex_unlock failed 35 with error code 22 (EINVAL: Invalid argument) 36 at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) 37 by 0x........: nearly_main (tc09_bad_unlock.c:41) 38 by 0x........: main (tc09_bad_unlock.c:49) 39 40 --------------------- 41 Thread #x unlocked a not-locked lock at 0x........ 42 at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) 43 by 0x........: nearly_main (tc09_bad_unlock.c:27) 44 by 0x........: main (tc09_bad_unlock.c:50) 45 Lock at 0x........ was first observed 46 at 0x........: pthread_mutex_init (hg_intercepts.c:...) 47 by 0x........: nearly_main (tc09_bad_unlock.c:23) 48 by 0x........: main (tc09_bad_unlock.c:49) 49 50 Thread #x: Attempt to re-lock a non-recursive lock I already hold 51 at 0x........: pthread_mutex_lock (hg_intercepts.c:...) 52 by 0x........: nearly_main (tc09_bad_unlock.c:32) 53 by 0x........: main (tc09_bad_unlock.c:50) 54 Lock was previously acquired 55 at 0x........: pthread_mutex_lock (hg_intercepts.c:...) 56 by 0x........: nearly_main (tc09_bad_unlock.c:32) 57 by 0x........: main (tc09_bad_unlock.c:49) 58 59 Thread #x: Bug in libpthread: recursive write lock granted on mutex/wrlock which does not support recursion 60 at 0x........: pthread_mutex_lock (hg_intercepts.c:...) 61 by 0x........: nearly_main (tc09_bad_unlock.c:32) 62 by 0x........: main (tc09_bad_unlock.c:50) 63 64 Thread #x was created 65 ... 66 by 0x........: pthread_create@* (hg_intercepts.c:...) 67 by 0x........: nearly_main (tc09_bad_unlock.c:35) 68 by 0x........: main (tc09_bad_unlock.c:50) 69 70 Thread #x unlocked lock at 0x........ currently held by thread #x 71 at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) 72 by 0x........: child_fn (tc09_bad_unlock.c:11) 73 by 0x........: mythread_wrapper (hg_intercepts.c:...) 74 ... 75 Lock at 0x........ was first observed 76 at 0x........: pthread_mutex_init (hg_intercepts.c:...) 77 by 0x........: nearly_main (tc09_bad_unlock.c:31) 78 by 0x........: main (tc09_bad_unlock.c:49) 79 80 Thread #x unlocked an invalid lock at 0x........ 81 at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) 82 by 0x........: nearly_main (tc09_bad_unlock.c:41) 83 by 0x........: main (tc09_bad_unlock.c:50) 84 85 Thread #x's call to pthread_mutex_unlock failed 86 with error code 22 (EINVAL: Invalid argument) 87 at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) 88 by 0x........: nearly_main (tc09_bad_unlock.c:41) 89 by 0x........: main (tc09_bad_unlock.c:50) 90 91 Thread #x: Exiting thread still holds 1 lock 92 ... 93 94 95 ERROR SUMMARY: 11 errors from 11 contexts (suppressed: 0 from 0) 96