Thanks Arch.
I thought that I was being clever by using pipelines to avoid explicit threading. Knowing that N stages of the pipeline will block, is it a matter of adding N worker threads to TBB? I would imagine this could lead to over subscription.
In my application, I will be using two tbb::pipelines. One will handle connection details, and the majority of the time it will be blocked waiting for something connection-oriented to happen.
Another pipeline will handle incoming requests, some of which will represent work to be completed in parallel. The first filter of this pipeline will spend the majority of its time blocked, waiting for new input. The end filter of the pipeline will spawn a new tbb::task before returning, and a very large amount of work will then be given to TBB to be completed.
Suggestions?
AJ