From 3f52d104216d5a0ebb8e2dcf191eb784492ff503 Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Mon, 9 Feb 2026 18:38:39 -0300 Subject: [PATCH] nip77: fix one possible infinite loop with channels. --- nip77/nip77.go | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/nip77/nip77.go b/nip77/nip77.go index 599d62a..701e2ec 100644 --- a/nip77/nip77.go +++ b/nip77/nip77.go @@ -128,17 +128,27 @@ func NegentropySync( }) } + done := make(chan struct{}) go func() { + defer close(done) wg.Wait() - errch <- nil + select { + case errch <- nil: + case <-ctx.Done(): + } }() - err = <-errch - if err != nil { - return err + select { + case err = <-errch: + if err != nil { + return err + } + return nil + case <-ctx.Done(): + return ctx.Err() + case <-done: + return nil } - - return nil } func SyncEventsFromIDs(ctx context.Context, dir Direction) {