From 533691a2181b69c9fdb3a91af2bb563b5c748a86 Mon Sep 17 00:00:00 2001 From: jyxjjj <773933146@qq.com> Date: Tue, 25 Nov 2025 12:47:16 +0800 Subject: [PATCH] chore(select): Simplify context cancellation handling in RPC calls Refactored the use of select statements to direct channel receives for context cancellation in setNotifier and Call methods. This streamlines the code and improves readability without changing functionality. --- pkg/aria2/rpc/call.go | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/pkg/aria2/rpc/call.go b/pkg/aria2/rpc/call.go index a2af84617..2502dc486 100644 --- a/pkg/aria2/rpc/call.go +++ b/pkg/aria2/rpc/call.go @@ -69,14 +69,11 @@ func (h *httpCaller) setNotifier(ctx context.Context, u url.URL, notifier Notifi go func() { defer h.wg.Done() defer conn.Close() - select { - case <-ctx.Done(): - conn.SetWriteDeadline(time.Now().Add(time.Second)) - if err := conn.WriteMessage(websocket.CloseMessage, - websocket.FormatCloseMessage(websocket.CloseNormalClosure, "")); err != nil { - log.Printf("sending websocket close message: %v", err) - } - return + <-ctx.Done() + conn.SetWriteDeadline(time.Now().Add(time.Second)) + if err := conn.WriteMessage(websocket.CloseMessage, + websocket.FormatCloseMessage(websocket.CloseNormalClosure, "")); err != nil { + log.Printf("sending websocket close message: %v", err) } }() h.wg.Add(1) @@ -251,11 +248,9 @@ func (w websocketCaller) Call(method string, params, reply interface{}) (err err return errors.New("sending channel blocking") } - select { - case <-ctx.Done(): - if err := ctx.Err(); err == context.DeadlineExceeded { - return err - } + <-ctx.Done() + if err := ctx.Err(); err == context.DeadlineExceeded { + return err } return }