Table Of Contents

Blocking and Non-Blocking State Transitions

    Last Modified: October 23, 2018

    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

    Recently Viewed Topics