diff --git a/server.go b/server.go index 298ad57..db1efa2 100644 --- a/server.go +++ b/server.go @@ -810,15 +810,14 @@ func (srv *Server) AddQueue(qname string, priority, concurrency int) { return } - srv.queues[qname] = priority - srv.state.mu.Lock() state := srv.state.value - srv.state.mu.Unlock() if state == srvStateNew || state == srvStateClosed { srv.queues[qname] = priority + srv.state.mu.Unlock() return } + srv.state.mu.Unlock() srv.logger.Info("restart server...") srv.forwarder.shutdown() @@ -832,6 +831,8 @@ func (srv *Server) AddQueue(qname string, priority, concurrency int) { srv.heartbeater.shutdown() srv.wg.Wait() + srv.queues[qname] = priority + qnames := make([]string, 0, len(srv.queues)) for q := range srv.queues { qnames = append(qnames, q)