From 316a4d4dbe336b8c2c76b7d2b367f7db29429709 Mon Sep 17 00:00:00 2001 From: haoqixu Date: Thu, 7 Mar 2024 11:34:39 +0800 Subject: [PATCH] fix: close `stopped` channel --- client/internal/wsreceiver.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/client/internal/wsreceiver.go b/client/internal/wsreceiver.go index 939f9ad5..634830d6 100644 --- a/client/internal/wsreceiver.go +++ b/client/internal/wsreceiver.go @@ -63,6 +63,8 @@ func (r *wsReceiver) ReceiverLoop(ctx context.Context) { err error } + defer func() { close(r.stopped) }() + for { select { case <-ctx.Done(): @@ -70,6 +72,7 @@ func (r *wsReceiver) ReceiverLoop(ctx context.Context) { default: result := make(chan receivedMessage, 1) + // To stop this goroutine, close the websocket connection go func() { var message protobufs.ServerToAgent err := r.receiveMessage(&message)