Defective usage of ForecastExecutor.post_process()
The docstrings of AbstractExecutor.post_process()
state that
def post_process(self):
"""
Execution post-processing
Invoked after all children have finished executing but before the
`finished` signal is emitted
"""
pass
Apparently this is not true. The post_process
method of e.g. SerialExecutor
is called every time the SerialExecutor._run_next
method is executed (i.e. when the status of the child changed, too).
Child executors are asked to perform their main work in a separate thread. As a consequence, they return as soon as possible after being invoked. So even if implementing children using something like QThread
within the executors run
method the current design would fail.