1 ---Thread-Announcement------------------------------------------ 2 3 Thread #x was created 4 ... 5 by 0x........: pthread_create@* (hg_intercepts.c:...) 6 by 0x........: main (locked_vs_unlocked2.c:61) 7 8 ---Thread-Announcement------------------------------------------ 9 10 Thread #x was created 11 ... 12 by 0x........: pthread_create@* (hg_intercepts.c:...) 13 by 0x........: main (locked_vs_unlocked2.c:62) 14 15 ---------------------------------------------------------------- 16 17 Lock at 0x........ was first observed 18 at 0x........: pthread_mutex_init (hg_intercepts.c:...) 19 by 0x........: main (locked_vs_unlocked2.c:58) 20 Address 0x........ is 0 bytes inside data symbol "mx2a" 21 22 Lock at 0x........ was first observed 23 at 0x........: pthread_mutex_init (hg_intercepts.c:...) 24 by 0x........: main (locked_vs_unlocked2.c:59) 25 Address 0x........ is 0 bytes inside data symbol "mx2b" 26 27 Lock at 0x........ was first observed 28 at 0x........: pthread_mutex_init (hg_intercepts.c:...) 29 by 0x........: main (locked_vs_unlocked2.c:57) 30 Address 0x........ is 0 bytes inside data symbol "mx1b" 31 32 Possible data race during write of size 4 at 0x........ by thread #x 33 Locks held: 2, at addresses 0x........ 0x........ 34 at 0x........: child_fn2 (locked_vs_unlocked2.c:45) 35 by 0x........: mythread_wrapper (hg_intercepts.c:...) 36 ... 37 38 This conflicts with a previous write of size 4 by thread #x 39 Locks held: 2, at address 0x........ (and 1 that can't be shown) 40 at 0x........: child_fn1 (locked_vs_unlocked2.c:29) 41 by 0x........: mythread_wrapper (hg_intercepts.c:...) 42 ... 43 Address 0x........ is 0 bytes inside data symbol "x" 44 45