fix of build

This commit is contained in:
2024-06-19 19:50:00 +06:00
parent e661185534
commit 90247667d1
3 changed files with 9 additions and 7 deletions

View File

@@ -3,7 +3,7 @@ package dev.inmo.micro_utils.coroutines
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
fun <T> launchInCurrentThread(block: suspend CoroutineScope.() -> T): T {
fun <T> launchInCurrentThread(block: suspend () -> T): T {
val scope = CoroutineScope(Dispatchers.Unconfined)
return scope.launchSynchronously(block)
}

View File

@@ -2,12 +2,12 @@ package dev.inmo.micro_utils.coroutines
import kotlinx.coroutines.*
fun <T> CoroutineScope.launchSynchronously(block: suspend CoroutineScope.() -> T): T {
fun <T> CoroutineScope.launchSynchronously(block: suspend () -> T): T {
var result: Result<T>? = null
val objectToSynchronize = Object()
synchronized(objectToSynchronize) {
launch(start = CoroutineStart.UNDISPATCHED) {
result = safelyWithResult(block)
result = runCatchingSafely(block)
}.invokeOnCompletion {
synchronized(objectToSynchronize) {
objectToSynchronize.notifyAll()
@@ -20,7 +20,7 @@ fun <T> CoroutineScope.launchSynchronously(block: suspend CoroutineScope.() -> T
return result!!.getOrThrow()
}
fun <T> launchSynchronously(block: suspend CoroutineScope.() -> T): T = CoroutineScope(Dispatchers.Default).launchSynchronously(block)
fun <T> launchSynchronously(block: suspend () -> T): T = CoroutineScope(Dispatchers.Default).launchSynchronously(block)
fun <T> CoroutineScope.doSynchronously(block: suspend CoroutineScope.() -> T): T = launchSynchronously(block)
fun <T> doSynchronously(block: suspend CoroutineScope.() -> T): T = launchSynchronously(block)
fun <T> CoroutineScope.doSynchronously(block: suspend () -> T): T = launchSynchronously(block)
fun <T> doSynchronously(block: suspend () -> T): T = launchSynchronously(block)