
Howard Hinnant wrote:
I was specifically trying to indicate a simplified (and safer) interface.
[...]
Do we want such sharing *implicitly*? By default? In the *foundation* class?
I don't know if you remember it, but a while ago I tried to convince you that an N2178 handle is conceptually a lower level primitive than an N2184 thread. This is extremely hard to sell to someone who has the implementations of both before his eyes and can plainly see that implementation-wise, N2184::thread is closer to pthread_t than N2178::handle. But if you consider both on an abstract level, it's easier to accept. An N2184 thread can be built on top of an N2178::handle by just wrapping it and disabling copyability. And an N2178::handle is obviously more powerful and more unsafe, as opposed to N2184::thread which is simplified and safer. I have absolutely no problems with the idea that the default and recommended primitive needs to be N2184::thread (minus cancelation_requested plus thread safety)... as long as we also deliver a powerful interface for the power users.