You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
RealTimeSynch lives in sim/ShuntingLoop.kt (not outside sim/);
SimulationRunner.throttle() is the external extension point but
ShuntingLoop does not call it in production.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: LONG_TERM_GOALS.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -224,7 +224,8 @@ Users can adjust simulation speed from slow motion (for detailed observation) to
224
224
225
225
**Implementation Notes:**
226
226
- The simulation library interface used by the model (historically jDisco, now kDisco/KMP) runs in pure simulation time and has no native wall-clock speed control or synchronization.
227
-
- Speed control is implemented externally via wall-clock throttling in `SimulationRunner` around `SimulationContext.run()`, preserving simulation semantics unchanged and requiring zero modifications to the `sim/` package.
227
+
- Speed control for `ShuntingLoop` is implemented via the `RealTimeSynch` inner process inside `sim/ShuntingLoop.kt` (enabled by `enableRealTimeSync`, paced by `speedMultiplier`). This resides in the `sim/` package.
228
+
-`SimulationRunner` provides a complementary external throttling API (`throttle()`, `awaitIfPaused()`) callable from the simulation thread; this is the designed extension point for future simulation processes that delegate pacing outside the `sim/` package.
0 commit comments