Transitions between two states can be non-blocking or blocking. Non-blocking transitions, such as the transition from Enabled to Flushing, occur immediately. Blocking transitions, such as from Unlinked to Disabled, halt the application until the reader or writer completes the necessary tasks.
For example, when a stream transitions from Unlinked to Disabled, it must wait on the writer or reader to initialize. Non-blocking transitions for the writer and reader occur before the next clock cycle. Blocking transitions might not finish for several clock cycles.
The following table lists the types of transitions, the blocking characteristics of the transition, and the host application nodes that can perform the transition.
Transition | Type | Node |
---|---|---|
Unlinked to Disabled | Blocking | Create Stream |
Disabled to Enabled | Blocking | Enable Stream |
Enabled to Flushing | Non-Blocking | Flush and Disable Stream |
Flushing to Disabled | Blocking | Flush and Disable Stream |
Enabled to Disabled | Blocking | Disable Stream |