diff --git a/api/server/server.go b/api/server/server.go index bb406aac56..7bf5f82072 100644 --- a/api/server/server.go +++ b/api/server/server.go @@ -32,7 +32,7 @@ import ( ) var ( - activationLock chan struct{} + activationLock chan struct{} = make(chan struct{}) ) type HttpServer struct { @@ -1445,7 +1445,6 @@ func ServeApi(job *engine.Job) error { protoAddrs = job.Args chErrors = make(chan error, len(protoAddrs)) ) - activationLock = make(chan struct{}) for _, protoAddr := range protoAddrs { protoAddrParts := strings.SplitN(protoAddr, "://", 2) diff --git a/api/server/server_linux.go b/api/server/server_linux.go index dd00e7d2ec..37ba7ed80d 100644 --- a/api/server/server_linux.go +++ b/api/server/server_linux.go @@ -82,7 +82,9 @@ func AcceptConnections(job *engine.Job) error { // Tell the init daemon we are accepting requests go systemd.SdNotify("READY=1") // close the lock so the listeners start accepting connections - if activationLock != nil { + select { + case <-activationLock: + default: close(activationLock) } return nil