소스 검색

close error channel after resource stream returns

Alexander Belanger 4 년 전
부모
커밋
8cefa03d74
1개의 변경된 파일2개의 추가작업 그리고 1개의 파일을 삭제
  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
 		}
 		}