Skip to content

codemodify/systemkit-debug-sync

Repository files navigation

Debug Sync Objects

What

Drop-in replacement for sync.* types with deadlock detection

Normal Use

import "github.com/codemodify/systemkit-debug-sync"
var mutex syncdebug.Mutex

mutex.Lock()
defer mutex.Unlock()

Dead-Lock Scenario 1

go func(){
	...
	mutex1.Lock()
	mutex2.Lock()
	...
}()

go func(){
	...
	mutex2.Lock() // lock order reversed, DEAD-LOCK
	mutex1.Lock()
	...
}()

Dead-Lock Scenario 2

go func(){
	...
	mutex1.Lock()
	mutex2.Lock()
	...

	...
	mutex1.Lock() // lock order reversed, DEAD-LOCK
	mutex2.Lock()
	...
}()

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages