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

@@ -13,6 +13,7 @@ import (
"time"
"github.com/syncthing/syncthing/lib/logger"
"github.com/sasha-s/go-deadlock"
)
var (
@@ -22,14 +23,15 @@ var (
// We make an exception in this package and have an actual "if debug { ...
// }" variable, as it may be rather performance critical and does
// nonstandard things (from a debug logging PoV).
debug = strings.Contains(os.Getenv("STTRACE"), "sync") || os.Getenv("STTRACE") == "all"
debug = strings.Contains(os.Getenv("STTRACE"), "sync") || os.Getenv("STTRACE") == "all"
useDeadlock = os.Getenv("STDEADLOCK") != ""
)
func init() {
l.SetDebug("sync", strings.Contains(os.Getenv("STTRACE"), "sync") || os.Getenv("STTRACE") == "all")
if n, err := strconv.Atoi(os.Getenv("STLOCKTHRESHOLD")); err == nil {
threshold = time.Duration(n) * time.Millisecond
deadlock.Opts.DeadlockTimeout = threshold = time.Duration(n) * time.Millisecond
}
l.Debugf("Enabling lock logging at %v threshold", threshold)
}