Boost logo

Boost :

From: Howard Hinnant (hinnant_at_[hidden])
Date: 2007-08-22 12:29:13


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:
>>
>>> 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
>>> 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


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk