prevent relay queriers that exit before EOSE from locking the QueryEvents() function forever.
This commit is contained in:
@@ -123,9 +123,15 @@ func (ess *ElasticsearchStorage) QueryEvents(ctx context.Context, filter nostr.F
|
||||
// optimization: get by id
|
||||
if isGetByID(filter) {
|
||||
if evts, err := ess.getByID(filter); err == nil {
|
||||
for _, evt := range evts {
|
||||
ch <- evt
|
||||
}
|
||||
go func() {
|
||||
for _, evt := range evts {
|
||||
select {
|
||||
case ch <- evt:
|
||||
case <-ctx.Done():
|
||||
return
|
||||
}
|
||||
}
|
||||
}()
|
||||
close(ch)
|
||||
} else {
|
||||
return nil, fmt.Errorf("error getting by id: %w", err)
|
||||
|
||||
Reference in New Issue
Block a user