Skip to content

Commit

Permalink
[scudo] Use getMonotonicTimeFast for tryLock.
Browse files Browse the repository at this point in the history
In tryLock, the Precedence value is set using the fast time function
now. This should speed up tryLock calls slightly.

This should be okay even though the value is used as a kind of random
value in getTSDAndLockSlow. The fast time call still sets enough bits
to avoid getting the same TSD on every call.

Reviewed By: Chia-hungDuan

Differential Revision: https://reviews.llvm.org/D154039
  • Loading branch information
cferris1000 committed Jun 29, 2023
1 parent b4ff893 commit 36ca9a2
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions compiler-rt/lib/scudo/standalone/tsd.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ template <class Allocator> struct alignas(SCUDO_CACHE_LINE_SIZE) TSD {
return true;
}
if (atomic_load_relaxed(&Precedence) == 0)
atomic_store_relaxed(
&Precedence,
static_cast<uptr>(getMonotonicTime() >> FIRST_32_SECOND_64(16, 0)));
atomic_store_relaxed(&Precedence,
static_cast<uptr>(getMonotonicTimeFast() >>
FIRST_32_SECOND_64(16, 0)));
return false;
}
inline void lock() NO_THREAD_SAFETY_ANALYSIS {
Expand Down

0 comments on commit 36ca9a2

Please sign in to comment.