From 76425e5427cccbc5d7e42faa950cfc3893bb982e Mon Sep 17 00:00:00 2001 From: Vladislav Yarmak Date: Tue, 23 Sep 2025 23:46:30 +0300 Subject: [PATCH] dialer selection: backport context cancel from parallel resolver --- dialer/selection.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dialer/selection.go b/dialer/selection.go index 69cd6d4..c6fae54 100644 --- a/dialer/selection.go +++ b/dialer/selection.go @@ -99,8 +99,8 @@ func probeDialer(ctx context.Context, dialer ContextDialer, url string, dlLimit func NewFastestServerSelectionFunc(url string, dlLimit int64, tlsClientConfig *tls.Config) SelectionFunc { return func(ctx context.Context, dialers []ContextDialer) (ContextDialer, error) { var resErr error - masterNotInterested := make(chan struct{}) - defer close(masterNotInterested) + ctx, cl := context.WithCancel(ctx) + defer cl() errors := make(chan error) success := make(chan ContextDialer) for _, dialer := range dialers { @@ -109,12 +109,12 @@ func NewFastestServerSelectionFunc(url string, dlLimit int64, tlsClientConfig *t if err == nil { select { case success <- dialer: - case <-masterNotInterested: + case <-ctx.Done(): } } else { select { case errors <- err: - case <-masterNotInterested: + case <-ctx.Done(): } } }(dialer)