
Anthony Williams wrote:
OK, now I see where Roland is coming from, as his POD mutex does just that.
Exactly :-) I just tried to extend, like you were suggesting, my POD mutex as an aggregate, i.e.: struct mutex { impldef-type * p; }; Works, fine. Ok next step: struct mutex { void lock() { .... } void unlock { .... } ... various other POD's to hold queue entry ... implde-type * p; }; Ok. The lock unlock are no problem, but "... various other POD's to hold queue entry ..." need to be thread specific! I did not yet put this to code, but it is a disprove of my original believe that it is unfeasible to provide lock unlock to my POD/aggregate mutex. So it would be feasible, but locking on the mutex would be a bit slower due to the thread_specific_ptr. But this puts some burden on the thread_specific pointer too: It also must be static initializeable! So it cannot be the boost one. Roland