From ec5934f5dd62f841a9d4aa2d01061e5ecfae05c8 Mon Sep 17 00:00:00 2001 From: LK4D4 Date: Mon, 24 Mar 2014 22:31:05 +0400 Subject: [PATCH] Workaround for hanging events. Fixes #4804 Docker-DCO-1.1-Signed-off-by: LK4D4 (github: LK4D4) Upstream-commit: c7540b3e94d7712b6b91ba80de0155f20156f3f3 Component: engine --- components/engine/server/server.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/components/engine/server/server.go b/components/engine/server/server.go index 840a70357d..2cb3328d55 100644 --- a/components/engine/server/server.go +++ b/components/engine/server/server.go @@ -222,6 +222,10 @@ func (srv *Server) Events(job *engine.Job) engine.Status { listener := make(chan utils.JSONMessage) srv.Lock() + if old, ok := srv.listeners[from]; ok { + delete(srv.listeners, from) + close(old) + } srv.listeners[from] = listener srv.Unlock() job.Stdout.Write(nil) // flush