Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2006-10-27 10:29:56


Anthony Williams wrote:
> "Peter Dimov" <pdimov_at_[hidden]> writes:
>
>> Peter Dimov wrote:
>>> Howard Hinnant wrote:
>>
>>>> So the fast path would check these bits and avoid the notify_all if
>>>> they weren't set.
>>>
>>> Thanks, I'll try this tomorrow. Later today, I mean.
>>
>> Works splendidly on uniprocessor, but displays the same odd behavior
>> I've been seeing with the other algorithms on my Pentium D (with
>> XP64):
>>
>> 0R+4W+0F: 46
>> 0R+0W+4F: 14
>> 0R+4W+4F: 10 (!)
>>
>> The Windows scheduler doesn't like us. Or I've made a mistake
>> somewhere. Even if I didn't, it seems to me that the bit doesn't
>> help in the 4W case since there's always a writer waiting, so we hit
>> the notify_all.
>
> Which mutex/condition implementation are you using?
> RC-1.34/HEAD/1.33.1 or thread_rewrite?

HEAD, but the phenomenon above is not synchronization primitive-specific.
I'm seeing it with semaphore-based implementations as well.


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