Make the container_args clone-able and remove the use of references.
Container_args is passed to the intermediate and init process, so we
need to make sure it can across the clone process boundry safely by
allowing passing of the container_args ownership to the new process.
Signed-off-by: yihuaf <yihuaf@unkies.org>
* refactored executor and executor manager
Refactored the executor and executor manager to be clone-able and more
ergonomics.
Removed the use of executor manager with a vector of executor. Instead
we favor composing executors into a new executor. Composing also allows
the implementer to be precise about the execution orders. The old
executor manager with its vector implementation is not explicit enough
about the order when multiple executor is involved.
Re-implement the executor to be a function pointer instead of the Fn
family traits. Traits will type erase and difficult to deal with when
implementing clone.
Refactored the wasm related exectors to use the new scheme.
Signed-off-by: yihuaf <yihuaf@unkies.org>
* Add comments and address the reviews
Signed-off-by: yihuaf <yihuaf@unkies.org>
* Add a section in executor
Signed-off-by: yihuaf <yihuaf@unkies.org>
---------
Signed-off-by: yihuaf <yihuaf@unkies.org>
Now the intermediate process waits for the main process only
when exec is called, not when the container is created. This
prevents it from waiting for created contianers, for which
exec might not be called.
This also fixes some formatting issues