buf[1] = 0;
sema_char++;
INNER_REQUEST(ANNOTATE_RWLOCK_CREATE(sema));
- INNER_REQUEST(ANNOTATE_RWLOCK_CREATE(&sema->owner_lwpid));
+ INNER_REQUEST(ANNOTATE_BENIGN_RACE_SIZED(&sema->owner_lwpid,
+ sizeof(sema->owner_lwpid), ""));
res = VG_(write)(sema->pipe[1], buf, 1);
vg_assert(res == 1);
}
{
vg_assert(sema->owner_lwpid != -1); /* must be initialised */
vg_assert(sema->pipe[0] != sema->pipe[1]);
- INNER_REQUEST(ANNOTATE_RWLOCK_DESTROY(&sema->owner_lwpid));
INNER_REQUEST(ANNOTATE_RWLOCK_DESTROY(sema));
VG_(close)(sema->pipe[0]);
VG_(close)(sema->pipe[1]);
Int ret;
Int lwpid = VG_(gettid)();
- INNER_REQUEST(ANNOTATE_RWLOCK_ACQUIRED(&sema->owner_lwpid, /*is_w*/0));
vg_assert(sema->owner_lwpid != lwpid); /* can't have it already */
- INNER_REQUEST(ANNOTATE_RWLOCK_RELEASED(&sema->owner_lwpid, /*is_w*/0));
vg_assert(sema->pipe[0] != sema->pipe[1]);
again: