
On Aug 22, 2007, at 11:22 AM, Yuval Ronen wrote:
Howard Hinnant wrote:
On Aug 22, 2007, at 8:05 AM, Yuval Ronen wrote:
Howard Hinnant wrote:
Because of this, it is not possible (in the above use case) for there to be a set_mutex on the condition to change the facade, since both facades are simultaneously in use. Yes, I've realized that too late. My set_mutex() function is useless because it has to be atomic with the wait(). I've just thought that it might be not so useless after all. 'set_mutex' is supposed to be called after the mutex was locked, and before calling condition::wait. Because the mutex is locked, we are protected against simultaneous use. There can be a problem when multiple readers lock for read, and simultaneously call set_mutex, but if we assume they all set
Yuval Ronen wrote: the same mutex it shouldn't be a problem.
How would wake from wait be handled? I.e. what mutex (facade) would it use to lock with? The last one set may not correspond to the proper one on wake.
It would lock the same mutex it unlocked upon entering wait().
Could you prototype or sketch this out? Sorry, I'm not following. -Howard