Does the runtime allocate common concurrency resources (threads, sync objects, etc.) for PPL and C++11 ? If not, how does arbitration occur ? What about debugging such code (parallel tasks window in VS) ?

Jawaban

Thanks for the good question. Yes, it is perfectly safe and in fact intentionally designed to work well when composing these constructs. std::future is powered by PPL Tasks under the hood, and all the sync objects (std::mutex, critical section, conditional
variable etc.) are ConcRT aware in the sense that the underlying runtime reacts to the blocking call by scheduling pending tasks.

All futures show up as Tasks in the parallel tasks view window - which is the desired experience for parallel developers.