From 2ede0bff52e0b8352eec11c2e7eba40f241e6ac0 Mon Sep 17 00:00:00 2001 From: "Frederick F. Kautz IV" Date: Sun, 18 Jan 2015 16:59:23 -0800 Subject: [PATCH] Closing channel when http server dies Fixing deadlock on error --- pkg/httpserver/httpserver.go | 1 + pkg/server/server.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/httpserver/httpserver.go b/pkg/httpserver/httpserver.go index 8dacc413b..6ede37a99 100644 --- a/pkg/httpserver/httpserver.go +++ b/pkg/httpserver/httpserver.go @@ -16,4 +16,5 @@ func start(ctrlChannel <-chan string, errorChannel chan<- error, router http.Han log.Println("Starting HTTP Server") err := http.ListenAndServe(":8080", router) errorChannel <- err + close(errorChannel) } diff --git a/pkg/server/server.go b/pkg/server/server.go index 6ca98f91e..8ba95b206 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -27,7 +27,7 @@ func Start() { cases := createSelectCases(statusChans) - for { + for len(cases) > 0 { chosen, value, recvOk := reflect.Select(cases) if recvOk == true { // Status Message Received