diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2016-06-27 11:14:59 +0000 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2016-06-27 11:14:59 +0000 |
| commit | b3a51bdcd7115b0e91ee250696b5eaf843927f1c (patch) | |
| tree | 3ba7aad6029e1bf0d177a9e5ab54f81f0a30f830 /compiler-rt/lib/tsan/tests/unit/tsan_sync_test.cc | |
| parent | 3044c34c455a1098216e21c110de3d46afaec34b (diff) | |
| download | bcm5719-llvm-b3a51bdcd7115b0e91ee250696b5eaf843927f1c.tar.gz bcm5719-llvm-b3a51bdcd7115b0e91ee250696b5eaf843927f1c.zip | |
tsan: don't create sync objects on acquire
Creating sync objects on acquire is pointless:
acquire of a just created sync object if a no-op.
llvm-svn: 273862
Diffstat (limited to 'compiler-rt/lib/tsan/tests/unit/tsan_sync_test.cc')
| -rw-r--r-- | compiler-rt/lib/tsan/tests/unit/tsan_sync_test.cc | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/compiler-rt/lib/tsan/tests/unit/tsan_sync_test.cc b/compiler-rt/lib/tsan/tests/unit/tsan_sync_test.cc index 9e57a374c8d..80166547878 100644 --- a/compiler-rt/lib/tsan/tests/unit/tsan_sync_test.cc +++ b/compiler-rt/lib/tsan/tests/unit/tsan_sync_test.cc @@ -53,7 +53,7 @@ TEST(MetaMap, Sync) { MetaMap *m = &ctx->metamap; u64 block[4] = {}; // fake malloc block m->AllocBlock(thr, 0, (uptr)&block[0], 4 * sizeof(u64)); - SyncVar *s1 = m->GetIfExistsAndLock((uptr)&block[0]); + SyncVar *s1 = m->GetIfExistsAndLock((uptr)&block[0], true); EXPECT_EQ(s1, (SyncVar*)0); s1 = m->GetOrCreateAndLock(thr, 0, (uptr)&block[0], true); EXPECT_NE(s1, (SyncVar*)0); @@ -64,9 +64,9 @@ TEST(MetaMap, Sync) { EXPECT_EQ(s2->addr, (uptr)&block[1]); s2->mtx.ReadUnlock(); m->FreeBlock(thr->proc(), (uptr)&block[0]); - s1 = m->GetIfExistsAndLock((uptr)&block[0]); + s1 = m->GetIfExistsAndLock((uptr)&block[0], true); EXPECT_EQ(s1, (SyncVar*)0); - s2 = m->GetIfExistsAndLock((uptr)&block[1]); + s2 = m->GetIfExistsAndLock((uptr)&block[1], true); EXPECT_EQ(s2, (SyncVar*)0); m->OnProcIdle(thr->proc()); } @@ -93,15 +93,15 @@ TEST(MetaMap, MoveMemory) { mb2 = m->GetBlock((uptr)&block2[3]); EXPECT_NE(mb2, (MBlock*)0); EXPECT_EQ(mb2->siz, 1 * sizeof(u64)); - s1 = m->GetIfExistsAndLock((uptr)&block1[0]); + s1 = m->GetIfExistsAndLock((uptr)&block1[0], true); EXPECT_EQ(s1, (SyncVar*)0); - s2 = m->GetIfExistsAndLock((uptr)&block1[1]); + s2 = m->GetIfExistsAndLock((uptr)&block1[1], true); EXPECT_EQ(s2, (SyncVar*)0); - s1 = m->GetIfExistsAndLock((uptr)&block2[0]); + s1 = m->GetIfExistsAndLock((uptr)&block2[0], true); EXPECT_NE(s1, (SyncVar*)0); EXPECT_EQ(s1->addr, (uptr)&block2[0]); s1->mtx.Unlock(); - s2 = m->GetIfExistsAndLock((uptr)&block2[1]); + s2 = m->GetIfExistsAndLock((uptr)&block2[1], true); EXPECT_NE(s2, (SyncVar*)0); EXPECT_EQ(s2->addr, (uptr)&block2[1]); s2->mtx.Unlock(); |

