chore(pkg/aria2): simplify context cancellation handling in RPC calls (#1705)

This commit is contained in:
ShenLin
2025-11-25 13:09:04 +08:00
committed by GitHub
parent 1a445f9d3f
commit 7189c5b461
+8 -13
View File
@@ -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
}