import cinit from unix.schottelius.org
Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
This commit is contained in:
parent
3729fc68eb
commit
423ba10303
13396 changed files with 269468 additions and 0 deletions
|
|
@ -0,0 +1,35 @@
|
|||
What todo with circular dependencies?
|
||||
a needs b
|
||||
b needs a
|
||||
|
||||
- try to start them?
|
||||
status a: is_starting
|
||||
status b: not_set
|
||||
a wants b, so a service starter for b starts
|
||||
status a: is_starting, waiting for b
|
||||
status b: is_starting
|
||||
service starter for b sees that a is needed
|
||||
service starter for b sees that a is already being started
|
||||
service starter for b begins to execute b
|
||||
status a: is_starting, waiting for b
|
||||
status b: is_starting, executing "on"
|
||||
service starter b finishes
|
||||
status a: is_starting, waiting for b
|
||||
status b: FAILED | RESPAWN | ONCE
|
||||
service a continues
|
||||
b successful: execute on
|
||||
b failed: register / print that we do not start, because
|
||||
b failed
|
||||
|
||||
-> this would only catch possible deadlocks, if the dependency
|
||||
tree / status check is done dynamically
|
||||
-> in case of pre-building the dep-tree this situation must
|
||||
be concerned:
|
||||
- start both a and b?
|
||||
- or stop due to circular dependency?
|
||||
|
||||
- Abort on detection of a circular dependency
|
||||
* possible without pre-calculating?
|
||||
- perhaps only with direct communication possible?
|
||||
* pre calculate
|
||||
- do not start that services?
|
||||
Loading…
Add table
Add a link
Reference in a new issue