Bruno Dumon wrote:


Looking at the code again, I still think that all events from one CommandManager are handled by one thread.

If you look at the code of the AbstractThreadManager:

In the method "register( EventPipeline pipeline )" one PipelineRunner is
created to handle events from the given EventPipeline (e.g. the one of
the CommandManager).

Then in the run() method the PipelineRunners are executed in parallel by
using the PooledExecutor: m_executor.execute( nextRunner );

The PooledExecutor takes care of initiating and managing the running threads. It also takes care of running the tasks in those threads.


But in the PipelineRunner.run() method, and the CommandManager.handleEvents() which is called by it, no new threads are started.

There is no reason for the CommandManager to create new threads when that logic is handled by the PooledExecutor.

--

"They that give up essential liberty to obtain a little temporary safety
 deserve neither liberty nor safety."
                - Benjamin Franklin



Reply via email to