diff --git a/src/main/java/org/syndicate_lang/actors/Turn.java b/src/main/java/org/syndicate_lang/actors/Turn.java index 1506153..1238108 100644 --- a/src/main/java/org/syndicate_lang/actors/Turn.java +++ b/src/main/java/org/syndicate_lang/actors/Turn.java @@ -43,10 +43,7 @@ public class Turn { } private void commit() { - if (_pending != null) { - _pending.forEach((ac, q) -> ac.execute(() -> Turn.forActor(ac, t -> q.forEach(f -> f.accept(t))))); - _pending = null; - } else if (_pendingTarget != null) { + if (_pendingTarget != null) { var ac = _pendingTarget; Consumer q0 = _pending0, q1 = _pending1, q2 = _pending2; _pendingTarget = null; @@ -56,7 +53,10 @@ public class Turn { if (q1 != null) q1.accept(t); if (q2 != null) q2.accept(t); })); - } + } else if (_pending != null) { + _pending.forEach((ac, q) -> ac.execute(() -> Turn.forActor(ac, t -> q.forEach(f -> f.accept(t))))); + _pending = null; + } } private void enqueue(Actor target, Consumer action) {