diff --git a/client/service.go b/client/service.go index 0eab4036..eb592357 100644 --- a/client/service.go +++ b/client/service.go @@ -356,6 +356,8 @@ func (svr *Service) ReloadConf(pxyCfgs map[string]config.ProxyConf, visitorCfgs svr.visitorCfgs = visitorCfgs svr.cfgMu.Unlock() + svr.ctlMu.RLock() + defer svr.ctlMu.RUnlock() return svr.ctl.ReloadConf(pxyCfgs, visitorCfgs) } @@ -365,8 +367,12 @@ func (svr *Service) Close() { func (svr *Service) GracefulClose(d time.Duration) { atomic.StoreUint32(&svr.exit, 1) + + svr.ctlMu.RLock() if svr.ctl != nil { svr.ctl.GracefulClose(d) } + svr.ctlMu.RUnlock() + svr.cancel() }