Răsfoiți Sursa

close error channel after resource stream returns

Alexander Belanger 4 ani în urmă
părinte
comite
8cefa03d74
1 a modificat fișierele cu 2 adăugiri și 1 ștergeri
  1. 2 1
      internal/kubernetes/provisioner/resource_stream.go

+ 2 - 1
internal/kubernetes/provisioner/resource_stream.go

@@ -10,6 +10,7 @@ import (
 // ResourceStream performs an XREAD operation on the given stream and outputs it to the given websocket conn.
 // ResourceStream performs an XREAD operation on the given stream and outputs it to the given websocket conn.
 func ResourceStream(client *redis.Client, streamName string, rw *websocket.WebsocketSafeReadWriter) error {
 func ResourceStream(client *redis.Client, streamName string, rw *websocket.WebsocketSafeReadWriter) error {
 	errorchan := make(chan error)
 	errorchan := make(chan error)
+	defer close(errorchan)
 
 
 	go func() {
 	go func() {
 		// listens for websocket closing handshake
 		// listens for websocket closing handshake
@@ -34,6 +35,7 @@ func ResourceStream(client *redis.Client, streamName string, rw *websocket.Webso
 			).Result()
 			).Result()
 
 
 			if err != nil {
 			if err != nil {
+				errorchan <- err
 				return
 				return
 			}
 			}
 
 
@@ -47,7 +49,6 @@ func ResourceStream(client *redis.Client, streamName string, rw *websocket.Webso
 	for {
 	for {
 		select {
 		select {
 		case err := <-errorchan:
 		case err := <-errorchan:
-			close(errorchan)
 			client.Close()
 			client.Close()
 			return err
 			return err
 		}
 		}