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.go
package main

import "fmt"

func main() {
	var waiters = 
	guardLimit := 2
	acquired := 1
	var action string
	if waiters == 0 {
		action = "enter"
	} else if waiters <= guardLimit {
		action = "backoff"
	} else {
		action = "page"
	}
	fmt.Printf("waiters=%d acquired=%d %s\n", waiters, acquired, action)
}
package main

import "fmt"

func main() {
	var waiters = 
	guardLimit := 2
	acquired := 1
	var action string
	if waiters == 0 {
		action = "enter"
	} else if waiters <= guardLimit {
		action = "backoff"
	} else {
		action = "page"
	}
	fmt.Printf("waiters=%d acquired=%d %s\n", waiters, acquired, action)
}
package main

import "fmt"

func main() {
	var waiters = 
	guardLimit := 2
	acquired := 1
	var action string
	if waiters == 0 {
		action = "enter"
	} else if waiters <= guardLimit {
		action = "backoff"
	} else {
		action = "page"
	}
	fmt.Printf("waiters=%d acquired=%d %s\n", waiters, acquired, 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.