If EOSE is not given, they should not be deleted.
This commit is contained in:
committed by
fiatjaf_
parent
ba25770f65
commit
cd0d644046
5
pool.go
5
pool.go
@@ -74,6 +74,7 @@ func (pool *SimplePool) subMany(ctx context.Context, urls []string, filters Filt
|
|||||||
events := make(chan IncomingEvent)
|
events := make(chan IncomingEvent)
|
||||||
seenAlready := xsync.NewMapOf[Timestamp]()
|
seenAlready := xsync.NewMapOf[Timestamp]()
|
||||||
ticker := time.NewTicker(seenAlreadyDropTick)
|
ticker := time.NewTicker(seenAlreadyDropTick)
|
||||||
|
eose := false
|
||||||
|
|
||||||
pending := xsync.NewCounter()
|
pending := xsync.NewCounter()
|
||||||
initial := len(urls)
|
initial := len(urls)
|
||||||
@@ -98,7 +99,10 @@ func (pool *SimplePool) subMany(ctx context.Context, urls []string, filters Filt
|
|||||||
}
|
}
|
||||||
|
|
||||||
select {
|
select {
|
||||||
|
case <-sub.EndOfStoredEvents:
|
||||||
|
eose = true
|
||||||
case <-ticker.C:
|
case <-ticker.C:
|
||||||
|
if eose {
|
||||||
del := map[string]struct{}{}
|
del := map[string]struct{}{}
|
||||||
old := Timestamp(time.Now().Add(-seenAlreadyDropTick).Unix())
|
old := Timestamp(time.Now().Add(-seenAlreadyDropTick).Unix())
|
||||||
seenAlready.Range(func(key string, value Timestamp) bool {
|
seenAlready.Range(func(key string, value Timestamp) bool {
|
||||||
@@ -110,6 +114,7 @@ func (pool *SimplePool) subMany(ctx context.Context, urls []string, filters Filt
|
|||||||
for k := range del {
|
for k := range del {
|
||||||
seenAlready.Delete(k)
|
seenAlready.Delete(k)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
case events <- IncomingEvent{Event: evt, Relay: relay}:
|
case events <- IncomingEvent{Event: evt, Relay: relay}:
|
||||||
case <-ctx.Done():
|
case <-ctx.Done():
|
||||||
return
|
return
|
||||||
|
|||||||
Reference in New Issue
Block a user