
Yuval Ronen wrote:
Peter Dimov wrote:
Yuval Ronen wrote:
So to rephrase what I wanted to say in the most concise manner - the cost I was talking about is that the interoperability requirement makes N2184 impossible. As simple as that.
I've no idea what you mean, sorry. What part of N2184 is impossible and why?
It depends on what kind of interoperability we're talking about. If we want to manipulate in C++ mutexes created in C or vice versa, then the example from the previous post explains it.
There are no mutexes in N2184.
If we want to manipulate in C++ threads created in C or vice versa, then we have pthread_t exposition problems which are the basically same problems as described for mutexes,
N2184 does expose a pthread_t under POSIX, see 'native_thread_handle'.
and in addition, we also have the join/cancel problems which were described elaborately by Howard.
An interoperability requirement for pthread_cancel doesn't make N2184 impossible, just infinitely more useful.