Drop-in replacement for sync.* types with deadlock detection
import "github.com/codemodify/systemkit-debug-sync"
var mutex syncdebug.Mutex
mutex.Lock()
defer mutex.Unlock()go func(){
...
mutex1.Lock()
mutex2.Lock()
...
}()
go func(){
...
mutex2.Lock() // lock order reversed, DEAD-LOCK
mutex1.Lock()
...
}()go func(){
...
mutex1.Lock()
mutex2.Lock()
...
...
mutex1.Lock() // lock order reversed, DEAD-LOCK
mutex2.Lock()
...
}()