Prevent in-flight command batches from surviving ALL_OFF
Because the epoch is captured separately for each enqueue_write, a logical command that enqueues multiple writes (for example sync_start() staging parameters/modes and then COMMAND_APPLY_STAGED_MODES) can be split by stop_all(): if ALL_OFF takes the lock between two enqueues, the earlier writes are cleared/dropped but the later writes get the new epoch and will run after the confirmed ALL_OFF. In an Activate Enabled Beams/CSV worker race, that can send an apply or mode write after an E-stop, so the epoch needs to be scoped to the whole logical command or producers need to be blocked/aborted during ALL_OFF.
Useful? React with 👍 / 👎.
Originally posted by @chatgpt-codex-connector[bot] in #194 (comment)
Because the epoch is captured separately for each
enqueue_write, a logical command that enqueues multiple writes (for examplesync_start()staging parameters/modes and thenCOMMAND_APPLY_STAGED_MODES) can be split bystop_all(): if ALL_OFF takes the lock between two enqueues, the earlier writes are cleared/dropped but the later writes get the new epoch and will run after the confirmed ALL_OFF. In an Activate Enabled Beams/CSV worker race, that can send an apply or mode write after an E-stop, so the epoch needs to be scoped to the whole logical command or producers need to be blocked/aborted during ALL_OFF.Useful? React with 👍 / 👎.
Originally posted by @chatgpt-codex-connector[bot] in #194 (comment)