alsoInvalidate, alsoDoInvalidate, singleSuspend, factorySuspend

This commit is contained in:
2025-03-14 14:13:58 +06:00
parent a4c6c367e3
commit 831bf44e34
6 changed files with 86 additions and 2 deletions

View File

@@ -7,7 +7,9 @@ fun <T> CoroutineScope.launchSynchronously(block: suspend CoroutineScope.() -> T
val objectToSynchronize = Object()
synchronized(objectToSynchronize) {
launch(start = CoroutineStart.UNDISPATCHED) {
result = safelyWithResult(block)
result = runCatching {
block()
}
}.invokeOnCompletion {
synchronized(objectToSynchronize) {
objectToSynchronize.notifyAll()