Skip to content

Commit 5910aff

Browse files
bedaHovorkaclaude
andcommitted
docs: correct Goal 7 speed-control implementation notes
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>
1 parent 62d68ba commit 5910aff

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

LONG_TERM_GOALS.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,8 @@ Users can adjust simulation speed from slow motion (for detailed observation) to
224224

225225
**Implementation Notes:**
226226
- 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.
228229
- Quick win - implement early for immediate value
229230

230231
---

0 commit comments

Comments
 (0)