diff options
Diffstat (limited to 'runtime/base/mutex-inl.h')
-rw-r--r-- | runtime/base/mutex-inl.h | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/runtime/base/mutex-inl.h b/runtime/base/mutex-inl.h index 1337dff..7f3b459 100644 --- a/runtime/base/mutex-inl.h +++ b/runtime/base/mutex-inl.h @@ -40,29 +40,25 @@ static inline int futex(volatile int *uaddr, int op, int val, const struct times class ScopedContentionRecorder { public: -#if CONTENTION_LOGGING - ScopedContentionRecorder(BaseMutex* mutex, uint64_t blocked_tid, uint64_t owner_tid) : - mutex_(mutex), blocked_tid_(blocked_tid), owner_tid_(owner_tid), - start_milli_time_(MilliTime()) { + ScopedContentionRecorder(BaseMutex* mutex, uint64_t blocked_tid, uint64_t owner_tid) + : mutex_(kLogLockContentions ? mutex : NULL), + blocked_tid_(kLogLockContentions ? blocked_tid : 0), + owner_tid_(kLogLockContentions ? owner_tid : 0), + start_nano_time_(kLogLockContentions ? NanoTime() : 0) { } -#else - ScopedContentionRecorder(BaseMutex*, uint64_t, uint64_t) {} -#endif ~ScopedContentionRecorder() { -#if CONTENTION_LOGGING - uint64_t end_milli_time = MilliTime(); - mutex_->RecordContention(blocked_tid_, owner_tid_, end_milli_time - start_milli_time_); -#endif + if (kLogLockContentions) { + uint64_t end_nano_time = NanoTime(); + mutex_->RecordContention(blocked_tid_, owner_tid_, end_nano_time - start_nano_time_); + } } private: -#if CONTENTION_LOGGING BaseMutex* const mutex_; const uint64_t blocked_tid_; const uint64_t owner_tid_; - const uint64_t start_milli_time_; -#endif + const uint64_t start_nano_time_; }; static inline uint64_t SafeGetTid(const Thread* self) { |