
Thread #x is the program's root thread

Thread #x unlocked a not-locked lock at 0x........ 
   at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
   by 0x........: nearly_main (tc09_bad_unlock.c:27)
   by 0x........: main (tc09_bad_unlock.c:49)
  Lock at 0x........ was first observed
   at 0x........: pthread_mutex_init (hg_intercepts.c:...)
   by 0x........: nearly_main (tc09_bad_unlock.c:23)
   by 0x........: main (tc09_bad_unlock.c:49)

Thread #x was created
   ...
   by 0x........: pthread_create@* (hg_intercepts.c:...)
   by 0x........: nearly_main (tc09_bad_unlock.c:35)
   by 0x........: main (tc09_bad_unlock.c:49)

Thread #x unlocked lock at 0x........ currently held by thread #x
   at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
   by 0x........: child_fn (tc09_bad_unlock.c:11)
   by 0x........: mythread_wrapper (hg_intercepts.c:...)
   ...
  Lock at 0x........ was first observed
   at 0x........: pthread_mutex_init (hg_intercepts.c:...)
   by 0x........: nearly_main (tc09_bad_unlock.c:31)
   by 0x........: main (tc09_bad_unlock.c:49)

Thread #x unlocked an invalid lock at 0x........ 
   at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
   by 0x........: nearly_main (tc09_bad_unlock.c:41)
   by 0x........: main (tc09_bad_unlock.c:49)

Thread #x deallocated location 0x........ containing a locked lock
   at 0x........: nearly_main (tc09_bad_unlock.c:45)
   by 0x........: main (tc09_bad_unlock.c:49)
  Lock at 0x........ was first observed
   at 0x........: pthread_mutex_init (hg_intercepts.c:...)
   by 0x........: nearly_main (tc09_bad_unlock.c:31)
   by 0x........: main (tc09_bad_unlock.c:49)

Thread #x unlocked a not-locked lock at 0x........ 
   at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
   by 0x........: nearly_main (tc09_bad_unlock.c:27)
   by 0x........: main (tc09_bad_unlock.c:50)
  Lock at 0x........ was first observed
   at 0x........: pthread_mutex_init (hg_intercepts.c:...)
   by 0x........: nearly_main (tc09_bad_unlock.c:23)
   by 0x........: main (tc09_bad_unlock.c:50)

Thread #x was created
   ...
   by 0x........: pthread_create@* (hg_intercepts.c:...)
   by 0x........: nearly_main (tc09_bad_unlock.c:35)
   by 0x........: main (tc09_bad_unlock.c:50)

Thread #x unlocked lock at 0x........ currently held by thread #x
   at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
   by 0x........: child_fn (tc09_bad_unlock.c:11)
   by 0x........: mythread_wrapper (hg_intercepts.c:...)
   ...
  Lock at 0x........ was first observed
   at 0x........: pthread_mutex_init (hg_intercepts.c:...)
   by 0x........: nearly_main (tc09_bad_unlock.c:31)
   by 0x........: main (tc09_bad_unlock.c:50)

Thread #x unlocked an invalid lock at 0x........ 
   at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
   by 0x........: nearly_main (tc09_bad_unlock.c:41)
   by 0x........: main (tc09_bad_unlock.c:50)

Thread #x deallocated location 0x........ containing a locked lock
   at 0x........: nearly_main (tc09_bad_unlock.c:45)
   by 0x........: main (tc09_bad_unlock.c:50)
  Lock at 0x........ was first observed
   at 0x........: pthread_mutex_init (hg_intercepts.c:...)
   by 0x........: nearly_main (tc09_bad_unlock.c:31)
   by 0x........: main (tc09_bad_unlock.c:50)

ERROR SUMMARY: 8 errors from 8 contexts (suppressed: 0 from 0)
