now flows are using doInfinity

This commit is contained in:
InsanusMokrassar committed 2021-09-26 11:49:01 +06:00
1 parent 4dc65bf09a
commit d36e406b59
2 files changed
+6 -6

No files matched your search

@@ -3,6 +3,8 @@ package dev.inmo.krontab
import com.soywiz.klock.DateTime
import com.soywiz.klock.DateTimeTz
import kotlinx.coroutines.delay
import kotlinx.coroutines.isActive
import kotlin.coroutines.coroutineContext
/**
* Execute [block] once at the [KronScheduler.next] time and return result of [block] calculation.
@@ -86,7 +88,7 @@ suspend inline fun doWhile(
*/
suspend inline fun KronScheduler.doInfinity(noinline block: suspend () -> Unit) = doWhile {
block()
true
coroutineContext.isActive
}
/**
@@ -94,7 +96,7 @@ suspend inline fun KronScheduler.doInfinity(noinline block: suspend () -> Unit)
*/
suspend inline fun KronSchedulerTz.doInfinity(noinline block: suspend () -> Unit) = doWhile {
block()
true
coroutineContext.isActive
}
/**
* Will [buildSchedule] using [scheduleConfig] and call [doInfinity] with [block]
@@ -15,9 +15,8 @@ import kotlinx.coroutines.flow.*
*/
@FlowPreview
fun KronSchedulerTz.asTzFlow(): Flow<DateTimeTz> = channelFlow {
doWhile {
doInfinity {
send(DateTime.nowLocal())
isActive
}
}
@@ -29,9 +28,8 @@ fun KronSchedulerTz.asTzFlow(): Flow<DateTimeTz> = channelFlow {
*/
@FlowPreview
fun KronScheduler.asFlow(): Flow<DateTime> = channelFlow {
doWhile {
doInfinity {
send(DateTime.now())
isActive
}
}