summaryrefslogtreecommitdiff
path: root/opendc-faas/opendc-faas-service/src
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2022-11-09 17:25:59 +0000
committerFabian Mastenbroek <mail.fabianm@gmail.com>2022-11-13 15:24:47 +0000
commit7a4b2c45a9926de59754b1d7219159656eea6e6d (patch)
tree4cf2cd842ec046128401a5b15bd42d86505422c6 /opendc-faas/opendc-faas-service/src
parentc22d744464f91eaa5f1aabee408351e864f36f1d (diff)
refactor: Use InstantSource as time source
This change updates the modules of OpenDC to always accept the `InstantSource` interface as source of time. Previously we used `java.time.Clock`, but this class is bound to a time zone which does not make sense for our use-cases. Since `java.time.Clock` implements `java.time.InstantSource`, it can be used in places that require an `InstantSource` as parameter. Conversion from `InstantSource` to `Clock` is also possible by invoking `InstantSource#withZone`.
Diffstat (limited to 'opendc-faas/opendc-faas-service/src')
-rw-r--r--opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/FaaSService.kt4
-rw-r--r--opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/autoscaler/FunctionTerminationPolicyFixed.kt4
-rw-r--r--opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/internal/FaaSServiceImpl.kt4
3 files changed, 6 insertions, 6 deletions
diff --git a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/FaaSService.kt b/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/FaaSService.kt
index 7b40d867..53706c57 100644
--- a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/FaaSService.kt
+++ b/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/FaaSService.kt
@@ -30,8 +30,8 @@ import org.opendc.faas.service.internal.FaaSServiceImpl
import org.opendc.faas.service.router.RoutingPolicy
import org.opendc.faas.service.telemetry.FunctionStats
import org.opendc.faas.service.telemetry.SchedulerStats
-import java.time.Clock
import java.time.Duration
+import java.time.InstantSource
import kotlin.coroutines.CoroutineContext
/**
@@ -71,7 +71,7 @@ public interface FaaSService : AutoCloseable {
*/
public operator fun invoke(
context: CoroutineContext,
- clock: Clock,
+ clock: InstantSource,
deployer: FunctionDeployer,
routingPolicy: RoutingPolicy,
terminationPolicy: FunctionTerminationPolicy,
diff --git a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/autoscaler/FunctionTerminationPolicyFixed.kt b/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/autoscaler/FunctionTerminationPolicyFixed.kt
index d579ad0c..f494adb1 100644
--- a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/autoscaler/FunctionTerminationPolicyFixed.kt
+++ b/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/autoscaler/FunctionTerminationPolicyFixed.kt
@@ -25,8 +25,8 @@ package org.opendc.faas.service.autoscaler
import org.opendc.common.util.TimerScheduler
import org.opendc.faas.service.deployer.FunctionInstance
import org.opendc.faas.service.deployer.FunctionInstanceState
-import java.time.Clock
import java.time.Duration
+import java.time.InstantSource
import kotlin.coroutines.CoroutineContext
/**
@@ -36,7 +36,7 @@ import kotlin.coroutines.CoroutineContext
*/
public class FunctionTerminationPolicyFixed(
context: CoroutineContext,
- clock: Clock,
+ clock: InstantSource,
public val timeout: Duration
) : FunctionTerminationPolicy {
/**
diff --git a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/internal/FaaSServiceImpl.kt b/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/internal/FaaSServiceImpl.kt
index 901213af..3235ff1a 100644
--- a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/internal/FaaSServiceImpl.kt
+++ b/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/internal/FaaSServiceImpl.kt
@@ -43,8 +43,8 @@ import org.opendc.faas.service.router.RoutingPolicy
import org.opendc.faas.service.telemetry.FunctionStats
import org.opendc.faas.service.telemetry.SchedulerStats
import java.lang.IllegalStateException
-import java.time.Clock
import java.time.Duration
+import java.time.InstantSource
import java.util.ArrayDeque
import java.util.Random
import java.util.UUID
@@ -61,7 +61,7 @@ import kotlin.coroutines.resumeWithException
*/
internal class FaaSServiceImpl(
context: CoroutineContext,
- private val clock: Clock,
+ private val clock: InstantSource,
private val deployer: FunctionDeployer,
private val routingPolicy: RoutingPolicy,
private val terminationPolicy: FunctionTerminationPolicy,