Skip to content

Commit 6481870

Browse files
authored
fix: data races when accessing github.com/fatedier/frp/client.(*Service).ctl (fatedier#2891)
* fix: data race in client/service.go * review fixes
1 parent a7a4ba2 commit 6481870

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

client/service.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,8 @@ func (svr *Service) ReloadConf(pxyCfgs map[string]config.ProxyConf, visitorCfgs
356356
svr.visitorCfgs = visitorCfgs
357357
svr.cfgMu.Unlock()
358358

359+
svr.ctlMu.RLock()
360+
defer svr.ctlMu.RUnlock()
359361
return svr.ctl.ReloadConf(pxyCfgs, visitorCfgs)
360362
}
361363

@@ -365,8 +367,12 @@ func (svr *Service) Close() {
365367

366368
func (svr *Service) GracefulClose(d time.Duration) {
367369
atomic.StoreUint32(&svr.exit, 1)
370+
371+
svr.ctlMu.RLock()
368372
if svr.ctl != nil {
369373
svr.ctl.GracefulClose(d)
370374
}
375+
svr.ctlMu.RUnlock()
376+
371377
svr.cancel()
372378
}

0 commit comments

Comments
 (0)