User Tools

Site Tools


eeros_architecture:sequencer:sequence

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
eeros_architecture:sequencer:sequence [2018/08/07 12:50] – [Waiting for Sequences to Finish] grafeeros_architecture:sequencer:sequence [2018/08/07 14:20] – [Blocking and Nonblocking Sequences] graf
Line 5: Line 5:
 A main feature of a sequence is whether it blocks the flow of control during running through its steps or whether the steps run in parallel to the main flow of control. A main feature of a sequence is whether it blocks the flow of control during running through its steps or whether the steps run in parallel to the main flow of control.
 [{{ :eeros_architecture:sequencer:sequenceblocking.png?500 | //Sequence B is blocking, sequence C is nonblocking// }}] [{{ :eeros_architecture:sequencer:sequenceblocking.png?500 | //Sequence B is blocking, sequence C is nonblocking// }}]
-Sequence A runs. That is, all its steps run consecutively. After step 1 is done the sequence B is called. As B is blocking its two steps run while A is being blocked. Only after B finishes does the control return back to A where step 2 and step 3 are then executed. After this sequence C is called. As C is nonblocking its two steps run in parallel to the remaining steps of sequence A. A must wait for C to finish by calling //join//. \\+Sequence A runs. That is, all its steps run consecutively. After step 1 is done the sequence B is called. As B is blocking its two steps run while A is being blocked. Only after B finishes does the control return back to A where step 2 and step 3 are then executed. After this sequence C is called. As C is nonblocking its two steps run in parallel to the remaining steps of sequence A. A must wait for C to finish by calling //wait()//. \\
 A nonblocking sequence will run in its own thread of execution while a blocking sequence always runs in the same thread as the calling sequence. A nonblocking sequence will run in its own thread of execution while a blocking sequence always runs in the same thread as the calling sequence.
  
eeros_architecture/sequencer/sequence.txt · Last modified: 2020/05/22 11:08 by ursgraf