aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/util/grace/signal_handling.go6
1 files changed, 4 insertions, 2 deletions
diff --git a/weed/util/grace/signal_handling.go b/weed/util/grace/signal_handling.go
index fc7afcad9..8146668be 100644
--- a/weed/util/grace/signal_handling.go
+++ b/weed/util/grace/signal_handling.go
@@ -12,7 +12,7 @@ import (
var signalChan chan os.Signal
var hooks = make([]func(), 0)
-var hookLock sync.Mutex
+var hookLock sync.RWMutex
func init() {
signalChan = make(chan os.Signal, 1)
@@ -27,10 +27,12 @@ func init() {
// syscall.SIGQUIT,
)
go func() {
- for _ = range signalChan {
+ for range signalChan {
+ hookLock.RLock()
for _, hook := range hooks {
hook()
}
+ hookLock.RUnlock()
os.Exit(0)
}
}()