
---Thread-Announcement------------------------------------------

Thread #x was created
   ...
   by 0x........: pthread_create_WRK (hg_intercepts.c:...)
   by 0x........: pthread_create@* (hg_intercepts.c:...)
   by 0x........: main (rwlock_race.c:48)

---Thread-Announcement------------------------------------------

Thread #x was created
   ...
   by 0x........: pthread_create_WRK (hg_intercepts.c:...)
   by 0x........: pthread_create@* (hg_intercepts.c:...)
   by 0x........: main (rwlock_race.c:47)

----------------------------------------------------------------

Possible data race during write of size 4 at 0x........ by thread #x
Locks held: none
   at 0x........: thread_func (rwlock_race.c:29)
   by 0x........: mythread_wrapper (hg_intercepts.c:...)
   ...

This conflicts with a previous write of size 4 by thread #x
Locks held: none
   at 0x........: thread_func (rwlock_race.c:29)
   by 0x........: mythread_wrapper (hg_intercepts.c:...)
   ...

Location 0x........ is 0 bytes inside global var "s_racy"
declared at rwlock_race.c:18

Result: 2

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