From 20997c829e6707c4fe91c7abeca0bbbf7c99c6d8 Mon Sep 17 00:00:00 2001 From: Josh Rickmar Date: Tue, 31 Dec 2024 19:46:08 +0000 Subject: [PATCH] select on cancellation and send delay --- mixing/mixclient/client.go | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/mixing/mixclient/client.go b/mixing/mixclient/client.go index 9cbdb9181..c969c7828 100644 --- a/mixing/mixclient/client.go +++ b/mixing/mixclient/client.go @@ -567,17 +567,11 @@ func (c *Client) sendLocalPeerMsgs(ctx context.Context, deadline time.Time, s *s for i := range msgs { m := msgs[i] - if sessionCancelled() { - continue - } - if err := m.p.ctx.Err(); err != nil { - nilPeerMsg(m.p, m.m) - errs = append(errs, err) - continue - } - time.Sleep(time.Until(m.sendTime)) - if sessionCancelled() { + select { + case <-ctx.Done(): + sessionCancelled() continue + case <-time.After(time.Until(m.sendTime)): } // TODO: handle send deadline in wallet.SubmitMixMessage. if time.Now().After(m.deadline) {