In reply to chr_sue:
I meant blocking and non-blocking in the context of handshake mechanism between the sequence, seqeuncer and driver. May be the word “call” with blocking and non-blocking has created the confusion.
To clarify it:
In get_next_item()+item_done() case, the sequencer is blocked and the driver cannot request a new item until the current_item is processed and item_done is sent.
Where-as, in get()+put() way, the sequencer is unblocked with the get() call itself and the driver can always do another get() even before the first put() is completed.