Browse Source

Merge pull request #4832 from LK4D4/fix_events_hanging_#4804

Workaround for hanging events. Fixes #4804
Michael Crosby 11 years ago
parent
commit
dece260f3a
1 changed files with 4 additions and 0 deletions
  1. 4 0
      server/server.go

+ 4 - 0
server/server.go

@@ -222,6 +222,10 @@ func (srv *Server) Events(job *engine.Job) engine.Status {
 
 
 	listener := make(chan utils.JSONMessage)
 	listener := make(chan utils.JSONMessage)
 	srv.Lock()
 	srv.Lock()
+	if old, ok := srv.listeners[from]; ok {
+		delete(srv.listeners, from)
+		close(old)
+	}
 	srv.listeners[from] = listener
 	srv.listeners[from] = listener
 	srv.Unlock()
 	srv.Unlock()
 	job.Stdout.Write(nil) // flush
 	job.Stdout.Write(nil) // flush