eeros_architecture:sequencer:sequence
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
eeros_architecture:sequencer:sequence [2018/08/07 12:49] – [Waiting for Sequences to Finish] graf | eeros_architecture:sequencer:sequence [2018/08/07 14:20] – external edit 127.0.0.1 | ||
---|---|---|---|
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. | ||
[{{ : | [{{ : | ||
- | 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. | ||
Line 59: | Line 59: | ||
The former waits for a given sequence to finish running. It returns as soon as all the steps defined in the sequence have completed to run. However, it does not terminate the associated thread. This allows to restart the same sequence with '' | The former waits for a given sequence to finish running. It returns as soon as all the steps defined in the sequence have completed to run. However, it does not terminate the associated thread. This allows to restart the same sequence with '' | ||
On the other hand, '' | On the other hand, '' | ||
- | IMPORTANT | + | IMPORTANT |
eeros_architecture/sequencer/sequence.txt · Last modified: 2020/05/22 11:08 by ursgraf