[llvm-commits] [compiler-rt] r167451 - in /compiler-rt/trunk/lib/tsan/rtl: tsan_clock.cc tsan_clock.h
Dmitry Vyukov
dvyukov at google.com
Tue Nov 6 05:16:25 PST 2012
Author: dvyukov
Date: Tue Nov 6 07:16:25 2012
New Revision: 167451
URL: http://llvm.org/viewvc/llvm-project?rev=167451&view=rev
Log:
tsan: don't release disabled clocks
Modified:
compiler-rt/trunk/lib/tsan/rtl/tsan_clock.cc
compiler-rt/trunk/lib/tsan/rtl/tsan_clock.h
Modified: compiler-rt/trunk/lib/tsan/rtl/tsan_clock.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/tsan/rtl/tsan_clock.cc?rev=167451&r1=167450&r2=167451&view=diff
==============================================================================
--- compiler-rt/trunk/lib/tsan/rtl/tsan_clock.cc (original)
+++ compiler-rt/trunk/lib/tsan/rtl/tsan_clock.cc Tue Nov 6 07:16:25 2012
@@ -58,6 +58,7 @@
ThreadClock::ThreadClock() {
nclk_ = 0;
+ disabled_ = false;
for (uptr i = 0; i < (uptr)kMaxTidInClock; i++)
clk_[i] = 0;
}
@@ -80,6 +81,8 @@
DCHECK(nclk_ <= kMaxTid);
DCHECK(dst->clk_.Size() <= kMaxTid);
+ if (disabled_)
+ return;
if (dst->clk_.Size() < nclk_)
dst->clk_.Resize(nclk_);
for (uptr i = 0; i < nclk_; i++) {
@@ -92,6 +95,8 @@
DCHECK(nclk_ <= kMaxTid);
DCHECK(dst->clk_.Size() <= kMaxTid);
+ if (disabled_)
+ return;
if (dst->clk_.Size() < nclk_)
dst->clk_.Resize(nclk_);
for (uptr i = 0; i < nclk_; i++)
@@ -106,6 +111,7 @@
}
void ThreadClock::Disable(unsigned tid) {
+ disabled_ = true;
u64 c0 = clk_[tid];
for (uptr i = 0; i < kMaxTidInClock; i++)
clk_[i] = (u64)-1;
Modified: compiler-rt/trunk/lib/tsan/rtl/tsan_clock.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/tsan/rtl/tsan_clock.h?rev=167451&r1=167450&r2=167451&view=diff
==============================================================================
--- compiler-rt/trunk/lib/tsan/rtl/tsan_clock.h (original)
+++ compiler-rt/trunk/lib/tsan/rtl/tsan_clock.h Tue Nov 6 07:16:25 2012
@@ -48,7 +48,7 @@
void set(unsigned tid, u64 v) {
DCHECK_LT(tid, kMaxTid);
- DCHECK_GE(v, clk_[tid]);
+ DCHECK(v >= clk_[tid] || disabled_);
clk_[tid] = v;
if (nclk_ <= tid)
nclk_ = tid + 1;
@@ -74,6 +74,7 @@
private:
uptr nclk_;
+ bool disabled_;
u64 clk_[kMaxTidInClock];
};
More information about the llvm-commits
mailing list