[ ] Allow checking whether the pipeline is idle with an idle() member function
Requires each worker thread to notify whether it's idling (waiting for input, or a paused producer)
May require separating the pop_unless(...) member function in wait_unless(...) and try_pop() in order to not degrade performance by updating idle state every time (e.g. false sharing)
[ ] Allow blocking the main thread until completion, similar to TBB flow graph's wait_for_all
In order to do it while actually blocking, without timer-based wake-ups, use a "listener" class,
Add new functionality to the pipeline interface:
idle()
member functionpop_unless(...)
member function inwait_unless(...)
andtry_pop()
in order to not degrade performance by updating idle state every time (e.g. false sharing)wait_for_all