aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Lebedev <9497591+kmlebedev@users.noreply.github.com>2022-09-02 18:20:19 +0500
committerGitHub <noreply@github.com>2022-09-02 06:20:19 -0700
commit853880bd837bd394994a2a3580eb236d76093514 (patch)
tree8141b4935809c53f2a782b7fb5357a1d0bb5d38f
parenta112cbe44c95d4685aefa43c27279e5aafb4b04c (diff)
downloadseaweedfs-853880bd837bd394994a2a3580eb236d76093514.tar.xz
seaweedfs-853880bd837bd394994a2a3580eb236d76093514.zip
[filer] DATA RACE on signal_handling fixed (#3575)
-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)
}
}()