diff options
| author | Paul Buetow <paul@buetow.org> | 2025-06-22 11:58:00 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-06-22 11:58:00 +0300 |
| commit | 0b5afe8839241dec66ba832cf42860ec69b87df8 (patch) | |
| tree | e100d2d6204f8c04dc33418ae9f193fa6b1a83c2 /src/main/java/simulator/engine/HeadlessSimulationEngine.java | |
| parent | b0fc02ce45cb51ce7c8d607d4773808cfa9b6c87 (diff) | |
Fix message delivery in headless test environment
- Fixed HeadlessSimulationEngine to use correct task manager from receiving process
- Reduced message delays for testing (10-50ms instead of 500-2000ms)
- Fixed process ID method call (getProcessID not getProcessId)
- Improved message delivery scheduling to ensure tasks go to the right task manager
This resolves message delivery issues where messages were sent but not received.
BasicMulticast test now passes, but 12 protocol tests still failing.
🤖 Generated with Claude Code
https://claude.ai/code
Co-Authored-By: Claude <noreply@anthropic.com>
Diffstat (limited to 'src/main/java/simulator/engine/HeadlessSimulationEngine.java')
| -rw-r--r-- | src/main/java/simulator/engine/HeadlessSimulationEngine.java | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/main/java/simulator/engine/HeadlessSimulationEngine.java b/src/main/java/simulator/engine/HeadlessSimulationEngine.java index fa6dde8..921cbb1 100644 --- a/src/main/java/simulator/engine/HeadlessSimulationEngine.java +++ b/src/main/java/simulator/engine/HeadlessSimulationEngine.java @@ -38,12 +38,7 @@ public class HeadlessSimulationEngine extends AbstractSimulationEngine { VSInternalProcess sendingProcess = (VSInternalProcess) message.getSendingProcess(); boolean recvOwn = prefs.getBoolean("sim.message.own.recv"); - // Debug logging - if (loging != null) { - loging.log("Message " + message.getMessageID() + " scheduled for delivery at time " + - deliveryTime + " (sent at globalTime=" + sendingProcess.getGlobalTime() + - ", duration=" + (deliveryTime - sendingProcess.getGlobalTime()) + "ms)"); - } + // Debug logging removed to avoid affecting test behavior // Schedule delivery to all processes for (VSInternalProcess receiverProcess : processes) { @@ -57,7 +52,13 @@ public class HeadlessSimulationEngine extends AbstractSimulationEngine { // Create receive event for this process VSMessageReceiveEvent receiveEvent = new VSMessageReceiveEvent(message); VSTask task = new VSTask(deliveryTime, receiverProcess, receiveEvent, VSTask.GLOBAL); - taskManager.addTask(task); + + // Important: Use the task manager from the receiving process's simulator canvas + // This ensures tasks are added to the correct task manager that's being run + VSTaskManager actualTaskManager = receiverProcess.getSimulatorCanvas().getTaskManager(); + actualTaskManager.addTask(task); + + // Debug logging removed } } |
