In #297, the __call__ dunder is moved to call method and used directly in add_task_subscriber. The function is an async function, and the reason is the proc.step_until_terminal() need to be scheduled into the event loop. It can actually make the call a sync function to consistent with both message_receiver and broadcast_reveiver. In the call, the proc.execute() method is called by step the process forward.
The problem can be checked and fixed together with unkcpz#39 to have a sophisticate control on event loop. Because when initialize a process will create an event loop if it is not created in the event loop, the event loop then need to reset to the runner one to launch.