Skip to content

Make transition_to asynchronous by default - #4849

Merged
toots merged 5 commits into
mainfrom
async-transitions
Jan 20, 2026
Merged

toots merged 5 commits into
mainfrom
async-transitions

Conversation

@toots

@toots toots commented Jan 20, 2026

Copy link
Copy Markdown
Member

This PR makes transition_to asynchronous by default and adds an explicit execute_transition for synchronous transitions.

This is meant to address issues such as #4840.

The problem with these issues is that we change the execution status of the output while it is concurrently in a streaming cycle, cause inconsistent states where the output is expecting to have an encoder.

Instead, except when explicitly needed, we should wait for the next streaming cycle and execute the state change before entering it.

States changes are queued so that e.g. a reset, i.e. a stop followed by a start will still happen at once during the next streaming cycle.

Fixes: #4840

TODO

@toots
toots enabled auto-merge January 20, 2026 17:00
@toots
toots added this pull request to the merge queue Jan 20, 2026
Merged via the queue into main with commit 12b3bcb Jan 20, 2026
51 checks passed
@toots
toots deleted the async-transitions branch January 20, 2026 17:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Crash when output.harbor is stopped via telnet while listener is connected

1 participant