diff --git a/net/streampool/sendpool.go b/net/streampool/sendpool.go index 5bf075e7..f0f36001 100644 --- a/net/streampool/sendpool.go +++ b/net/streampool/sendpool.go @@ -28,6 +28,10 @@ func (ss *execPool) Add(ctx context.Context, f ...func()) (err error) { return ss.batch.Add(ctx, f...) } +func (ss *execPool) TryAdd(f ...func()) (err error) { + return ss.batch.TryAdd(f...) +} + func (ss *execPool) sendLoop() { for { f, err := ss.batch.WaitOne(context.Background()) diff --git a/net/streampool/streampool.go b/net/streampool/streampool.go index 01527d14..84108371 100644 --- a/net/streampool/streampool.go +++ b/net/streampool/streampool.go @@ -117,7 +117,7 @@ func (s *streamPool) Send(ctx context.Context, msg drpc.Message, peerGetter Peer } } } - return s.dial.Add(ctx, func() { + return s.dial.TryAdd(func() { peers, dialErr := peerGetter(ctx) if dialErr != nil { log.InfoCtx(ctx, "can't get peers", zap.Error(dialErr))