[jOOQ/jOOQ#15103] Add DSLContext.transactionCoroutine overload accepting CoroutineContext

This commit is contained in:
Lukas Eder 2023-05-25 08:28:09 +02:00
parent 2c657cc784
commit 3ac7f72fa1

View File

@ -1,5 +1,6 @@
package org.jooq.kotlin.coroutines
import kotlin.coroutines.CoroutineContext
import kotlinx.coroutines.reactive.awaitFirstOrNull
import kotlinx.coroutines.reactor.mono
import org.jooq.Configuration
@ -16,4 +17,13 @@ suspend fun <T> DSLContext.transactionCoroutine(transactional: suspend (Configur
transactional.invoke(c)
}
}.awaitFirstOrNull() as T
}
suspend fun <T> DSLContext.transactionCoroutine(context: CoroutineContext, transactional: suspend (Configuration) -> T): T {
@Suppress("UNCHECKED_CAST")
return transactionPublisher { c ->
mono(context) {
transactional.invoke(c)
}
}.awaitFirstOrNull() as T
}