Makes sure subscriptions are closed on the NostrClient utility methods
This commit is contained in:
+5
-2
@@ -65,15 +65,18 @@ suspend fun INostrClient.queryCountSuspend(
|
|||||||
|
|
||||||
subscribe(listener)
|
subscribe(listener)
|
||||||
|
|
||||||
|
val result =
|
||||||
|
try {
|
||||||
queryCount(subId = subId, filters = mapOf(relay to listOf(filter)))
|
queryCount(subId = subId, filters = mapOf(relay to listOf(filter)))
|
||||||
|
|
||||||
val result =
|
|
||||||
withTimeoutOrNull(timeoutMs) {
|
withTimeoutOrNull(timeoutMs) {
|
||||||
resultChannel.receive()
|
resultChannel.receive()
|
||||||
}
|
}
|
||||||
|
} finally {
|
||||||
close(subId)
|
close(subId)
|
||||||
unsubscribe(listener)
|
unsubscribe(listener)
|
||||||
|
}
|
||||||
|
|
||||||
resultChannel.close()
|
resultChannel.close()
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|||||||
+5
-2
@@ -98,6 +98,8 @@ suspend fun INostrClient.sendAndWaitForResponseDetailed(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val receivedResults =
|
||||||
|
try {
|
||||||
subscribe(subscription)
|
subscribe(subscription)
|
||||||
|
|
||||||
// subscribe before sending the result.
|
// subscribe before sending the result.
|
||||||
@@ -126,9 +128,10 @@ suspend fun INostrClient.sendAndWaitForResponseDetailed(
|
|||||||
result
|
result
|
||||||
}
|
}
|
||||||
|
|
||||||
val receivedResults = resultSubscription.await()
|
resultSubscription.await()
|
||||||
|
} finally {
|
||||||
unsubscribe(subscription)
|
unsubscribe(subscription)
|
||||||
|
}
|
||||||
|
|
||||||
// Clean up the channel
|
// Clean up the channel
|
||||||
resultChannel.close()
|
resultChannel.close()
|
||||||
|
|||||||
+4
-2
@@ -104,14 +104,16 @@ suspend fun INostrClient.downloadFirstEvent(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val result =
|
||||||
|
try {
|
||||||
openReqSubscription(subscriptionId, filters, listener)
|
openReqSubscription(subscriptionId, filters, listener)
|
||||||
|
|
||||||
val result =
|
|
||||||
withTimeoutOrNull(30000) {
|
withTimeoutOrNull(30000) {
|
||||||
resultChannel.receive()
|
resultChannel.receive()
|
||||||
}
|
}
|
||||||
|
} finally {
|
||||||
close(subscriptionId)
|
close(subscriptionId)
|
||||||
|
}
|
||||||
|
|
||||||
resultChannel.close()
|
resultChannel.close()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user