lib/sync: Add option for sasha-s/go-deadlock

This commit is contained in:
Audrius Butkevicius
2016-11-05 02:24:53 +00:00
parent 14937e7dd2
commit da413b823b
7 changed files with 847 additions and 56 deletions

View File

@@ -15,6 +15,8 @@ import (
"sync"
"sync/atomic"
"time"
"github.com/sasha-s/go-deadlock"
)
type Mutex interface {
@@ -35,6 +37,9 @@ type WaitGroup interface {
}
func NewMutex() Mutex {
if useDeadlock {
return deadlock.Mutex{}
}
if debug {
mutex := &loggedMutex{}
mutex.holder.Store(holder{})
@@ -44,6 +49,9 @@ func NewMutex() Mutex {
}
func NewRWMutex() RWMutex {
if useDeadlock {
return deadlock.RWMutex{}
}
if debug {
mutex := &loggedRWMutex{
readHolders: make(map[int][]holder),