Shell: multiple worker threads
This issue requires #13 to be implemented.
Introduce an additional configuration flag (e.g. AMIROOS_CFG_SHELL_WORKERS
) to define the number of worker threads, which can execute commands in a concurrently manner.
This feature requires multiple changes to the overall command handling:
- output control:
The user must be enabled to suppress and reactivate output for individual commands. - priority control:
The user should have the ability to modify the priority of worker threads. - system and user commands:
The user must be able to execute certain system commands (e.g. priority control) even if no further worker threads are available. Therefore a distinction between system and user commands is required so that system commands can be executed within the shell dispatch thread.
The overall handling of concurrent commands should be similar to Linux, even though some aspects will most probably differ.