slight performance improvement on the reqflow

This commit is contained in:
Vitor Pamplona
2025-11-12 08:27:59 -05:00
parent b4810fd12c
commit 9eee5d9e1e
@@ -65,7 +65,7 @@ fun INostrClient.reqResultsInOrderAsFlow(
val subId = RandomInstance.randomChars(10) val subId = RandomInstance.randomChars(10)
var hasBeenLive = false var hasBeenLive = false
val eventIds = mutableSetOf<HexKey>() val eventIds = mutableSetOf<HexKey>()
val events = mutableListOf<Event>() var currentEvents = listOf<Event>()
val listener = val listener =
object : IRequestListener { object : IRequestListener {
@@ -77,12 +77,16 @@ fun INostrClient.reqResultsInOrderAsFlow(
) { ) {
if (event.id !in eventIds) { if (event.id !in eventIds) {
if (hasBeenLive) { if (hasBeenLive) {
events.add(0, event) // faster
val list = ArrayList<Event>(1 + currentEvents.size)
list.add(event)
list.addAll(currentEvents)
currentEvents = list
} else { } else {
events.add(event) currentEvents = currentEvents + event
} }
eventIds.add(event.id) eventIds.add(event.id)
trySend(events.toList()) trySend(currentEvents)
} }
} }