genode/repos/os/src/app/sequence
Ehmry - a7a0d3fe63 Refactor Tup, flatten output directories
Make no attempt to replicate the depot layout.
2019-10-28 11:32:29 +01:00
..
README sequence: add keep-going feature 2019-05-16 13:11:03 +02:00
Tupfile Refactor Tup, flatten output directories 2019-10-28 11:32:29 +01:00
main.cc sequence: add keep-going feature 2019-05-16 13:11:03 +02:00
target.mk app/sequence: execute components in sequence 2017-08-18 10:24:46 +02:00

README

This directory contains a simple utility to serialize the execution of
multiple components. It is configured with '<start>' XML nodes much like
_init_. However, this component relies on its parent to manage all routing
and resources, with the exception of a 'config' ROM. No services are
propagated from children to the parent.

A sample configuration to start a consumer after a producer has exited:

! <start name="sequence" caps="100">
!   <resource name="RAM" quantum="128M"/>
!   <route>
!     <any-service> <parent/> <any-child/> </any-service>
!   </route>
!   <config>
!     <start name="producer">
!       <config>
!         ...
!       </config>
!     </start>
!     <start name="consumer">
!       <config>
!         ...
!       </config>
!     </start>
!   </config>
! </start>

There are a few optional '<config>' attributes that control the way the
component operates:

* 'repeat' will instruct the component to repeat the sequence again
  starting from the first '<start>' node when it has reached the end.
  The default is 'false'.

* 'keep_going' will instruct the component to start the next child
  in case the previous one exited with an error. The default is 'false'.

* 'restart' instructs the component to start from the top of the
  sequence. It is only evaluted when 'keep_going' is enabled. The
  default is 'false'.