Config Initialization Sequence Equalizer logo

Author: [email protected]
State:

The following table lists the order of operations during eq::Config::init. The same operation for different instances will happen in parallel when the instances belong to different threads, e.g., all Pipe::configInit are executed in parallel.

Operations for non-threaded pipes are executed in the node thread immediately and in the app thread during Config::finishInit. The children for an entity are initialized before the next sibling of the entity is initialized, e.g, the Channel::configInit task methods for all channels of a window are called before the next Window::configInit is executed.

App thread Node thread(s) Pipe thread(s)

Config::init
Config::Config
Node::Node
Node::configInit
Pipe::Pipe
Pipe::configInit
Window::Window
Window::configInit
Channel::Channel
Channel::configInit
Config::init returns

Config::exit
Channel::configExit
Window::configExit
Pipe::configExit
Node::configExit
Channel::~Channel
Window::~Window
Pipe::~Pipe
Node::~Node
Config::~Config
Config::exit returns

Open Issues

Config::exit should also be separated into startExit and finishExit. This will be implemented as soon as it is needed.