fix: activate fixture command queue before dispatch

This commit is contained in:
codex
2026-08-04 07:39:21 +03:00
parent c633107273
commit 6ed1e4086b
2 changed files with 4 additions and 4 deletions
@@ -268,13 +268,13 @@ internal sealed class FirstLimitedApplyAutomationCoordinator
{ {
if (IsTerminal || document is null) return; if (IsTerminal || document is null) return;
transitions.Add("CommandQueued:" + command); transitions.Add("CommandQueued:" + command);
document.SendStringToExecute(command + "\n", true, false, false); document.SendStringToExecute(command + "\n", true, true, false);
} }
private void QueueReadinessBarrier() private void QueueReadinessBarrier()
{ {
if (IsTerminal || document is null) return; if (IsTerminal || document is null) return;
transitions.Add("ReadinessBarrierQueued"); transitions.Add("ReadinessBarrierQueued");
document.SendStringToExecute("PHP_REC_AUTOMATION_READY\n", true, false, false); document.SendStringToExecute("PHP_REC_AUTOMATION_READY\n", true, true, false);
} }
private void OnCommandEnded(object sender, CommandEventArgs e) private void OnCommandEnded(object sender, CommandEventArgs e)
{ {
@@ -396,7 +396,7 @@ internal sealed class FirstLimitedApplyAutomationCoordinator
// Persist the exit boundary before handing control back to AutoCAD; // Persist the exit boundary before handing control back to AutoCAD;
// process termination can otherwise prevent the final evidence flush. // process termination can otherwise prevent the final evidence flush.
TryWriteEvidence(functionalCompleted, null); TryWriteEvidence(functionalCompleted, null);
exitDocument.SendStringToExecute("_.QUIT _N\n", true, false, false); exitDocument.SendStringToExecute("_.QUIT _N\n", true, true, false);
document = null; document = null;
automationOpenedDocuments.Clear(); automationOpenedDocuments.Clear();
} }
@@ -116,7 +116,7 @@ public sealed class FoundationTests
Assert.Contains("RequestControlledExit", source); Assert.Contains("RequestControlledExit", source);
Assert.Contains("AcadApplication.Idle += OnExitIdle", source); Assert.Contains("AcadApplication.Idle += OnExitIdle", source);
Assert.Contains("QuitDispatchAttempted", source); Assert.Contains("QuitDispatchAttempted", source);
Assert.Contains("exitDocument.SendStringToExecute(\"_.QUIT _N\\n\", true, false, false);", source); Assert.Contains("exitDocument.SendStringToExecute(\"_.QUIT _N\\n\", true, true, false);", source);
Assert.Contains("var exitDocument = AcadApplication.DocumentManager.MdiActiveDocument;", source); Assert.Contains("var exitDocument = AcadApplication.DocumentManager.MdiActiveDocument;", source);
} }