summaryrefslogtreecommitdiff
path: root/odcsim-engine-omega/src
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2019-03-04 13:03:41 +0100
committerFabian Mastenbroek <mail.fabianm@gmail.com>2019-05-13 20:26:46 +0200
commitf0a8f3906d6f4d94900117b4d9f0bd9e58f33e10 (patch)
tree0d54cdf852c0ca409d36bf0755eb2d732985a2dc /odcsim-engine-omega/src
parentec89945d499e6aa1e686f2d6b6a9e13a67e02bb0 (diff)
feat: Add initial interface for parallel simulations
This change adds the initial interface design for parallel simulations, which requires explicit synchronization between actors in order to establish consistent virtual time between them.
Diffstat (limited to 'odcsim-engine-omega/src')
-rw-r--r--odcsim-engine-omega/src/main/kotlin/com/atlarge/odcsim/engine/omega/OmegaActorSystem.kt8
1 files changed, 8 insertions, 0 deletions
diff --git a/odcsim-engine-omega/src/main/kotlin/com/atlarge/odcsim/engine/omega/OmegaActorSystem.kt b/odcsim-engine-omega/src/main/kotlin/com/atlarge/odcsim/engine/omega/OmegaActorSystem.kt
index c4a9b35f..f6667d39 100644
--- a/odcsim-engine-omega/src/main/kotlin/com/atlarge/odcsim/engine/omega/OmegaActorSystem.kt
+++ b/odcsim-engine-omega/src/main/kotlin/com/atlarge/odcsim/engine/omega/OmegaActorSystem.kt
@@ -165,6 +165,14 @@ class OmegaActorSystem<in T : Any>(root: Behavior<T>, override val name: String)
return true
}
+ // Synchronization of actors in a single-threaded simulation is trivial: all actors are consistent in virtual
+ // time.
+ override fun sync(target: ActorRef<*>) {}
+
+ override fun unsync(target: ActorRef<*>) {}
+
+ override fun isSync(target: ActorRef<*>): Boolean = true
+
/**
* Start this actor.
*/