diff options
author | 2022-09-01 09:03:32 -0700 | |
---|---|---|
committer | 2022-09-01 09:04:41 -0700 | |
commit | b308bc06514600e9dedc16442fa5099050090d94 (patch) | |
tree | b85fec244098d41964f1d2b5709c45bbd5638a2b /absl/synchronization/mutex.cc | |
parent | 43d3c7a4e290ee96684735daf7b1d528c30a7943 (diff) |
Changes mutex profiling
PiperOrigin-RevId: 471545981
Change-Id: I4d2c8b6d4f1e58976915bda78a77178b8bf80da8
Diffstat (limited to 'absl/synchronization/mutex.cc')
-rw-r--r-- | absl/synchronization/mutex.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/absl/synchronization/mutex.cc b/absl/synchronization/mutex.cc index 2662c071..144fdee6 100644 --- a/absl/synchronization/mutex.cc +++ b/absl/synchronization/mutex.cc @@ -493,7 +493,8 @@ struct SynchWaitParams { cvmu(cvmu_arg), thread(thread_arg), cv_word(cv_word_arg), - contention_start_cycles(base_internal::CycleClock::Now()) {} + contention_start_cycles(base_internal::CycleClock::Now()), + should_submit_contention_data(false) {} const Mutex::MuHow how; // How this thread needs to wait. const Condition *cond; // The condition that this thread is waiting for. @@ -511,6 +512,7 @@ struct SynchWaitParams { int64_t contention_start_cycles; // Time (in cycles) when this thread started // to contend for the mutex. + bool should_submit_contention_data; }; struct SynchLocksHeld { @@ -2348,6 +2350,7 @@ ABSL_ATTRIBUTE_NOINLINE void Mutex::UnlockSlow(SynchWaitParams *waitp) { if (!wake_list->cond_waiter) { wait_cycles += (now - wake_list->waitp->contention_start_cycles); wake_list->waitp->contention_start_cycles = now; + wake_list->waitp->should_submit_contention_data = true; } wake_list = Wakeup(wake_list); // wake waiters } while (wake_list != kPerThreadSynchNull); |