From 7f2f5b0e84067540e538c2055f7518b6cf75ecd1 Mon Sep 17 00:00:00 2001 From: Jonathan Lifflander Date: Tue, 25 Feb 2025 15:42:45 -0800 Subject: [PATCH] #2382: temperedlb: explain 100 microsecond delay when a lock cycle is found --- src/vt/vrt/collection/balance/temperedlb/temperedlb.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/vt/vrt/collection/balance/temperedlb/temperedlb.cc b/src/vt/vrt/collection/balance/temperedlb/temperedlb.cc index b099fab6c8..e6344dca2d 100644 --- a/src/vt/vrt/collection/balance/temperedlb/temperedlb.cc +++ b/src/vt/vrt/collection/balance/temperedlb/temperedlb.cc @@ -2590,6 +2590,9 @@ void TemperedLB::satisfyLockRequest() { try_locks_.erase(iter); if (lock.forced_release) { + // Delay for 100 microseconds to give another rank a chance at obtaining a + // lock so the cycle isn't just created again. This number was found + // to be reasonable through some experimentation. std::this_thread::sleep_for(std::chrono::microseconds(100)); lock.forced_release = false; try_locks_.insert(lock);