Turn the number of waiters behind a held guard into an enter, backoff, or page remediation action.

Mutex Guard Remediation Report

mutex_guard_remediation_report.rb
waiters = 
guard_limit = 2
acquired = 1

action = if waiters == 0
  "enter"
elsif waiters <= guard_limit
  "backoff"
else
  "page"
end

puts "waiters=#{waiters}"
puts "acquired=#{acquired}"
puts "action=#{action}"
waiters = 
guard_limit = 2
acquired = 1

action = if waiters == 0
  "enter"
elsif waiters <= guard_limit
  "backoff"
else
  "page"
end

puts "waiters=#{waiters}"
puts "acquired=#{acquired}"
puts "action=#{action}"
waiters = 
guard_limit = 2
acquired = 1

action = if waiters == 0
  "enter"
elsif waiters <= guard_limit
  "backoff"
else
  "page"
end

puts "waiters=#{waiters}"
puts "acquired=#{acquired}"
puts "action=#{action}"
guard contention The waiter count behind a held guard is kept as a scalar so the remediation action stays deterministic and never depends on scheduler timing or lock identity.