diff options
| author | Konstantin Lebedev <9497591+kmlebedev@users.noreply.github.com> | 2022-09-02 18:20:19 +0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-09-02 06:20:19 -0700 |
| commit | 853880bd837bd394994a2a3580eb236d76093514 (patch) | |
| tree | 8141b4935809c53f2a782b7fb5357a1d0bb5d38f | |
| parent | a112cbe44c95d4685aefa43c27279e5aafb4b04c (diff) | |
| download | seaweedfs-853880bd837bd394994a2a3580eb236d76093514.tar.xz seaweedfs-853880bd837bd394994a2a3580eb236d76093514.zip | |
[filer] DATA RACE on signal_handling fixed (#3575)
| -rw-r--r-- | weed/util/grace/signal_handling.go | 6 |
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) } }() |
