![]() |
Boost : |
From: Peter Dimov (pdimov_at_[hidden])
Date: 2006-10-24 10:07:34
Anthony Williams wrote:
> "Peter Dimov" <pdimov_at_[hidden]> writes:
>
>> Chris Thomasson wrote:
>>> Here is the initial experimental pseudo-code that I am thinking
>>> about prototyping in IA-32 Assembly:
>>>
>>> http://groups.google.com/group/comp.programming.threads/browse_frm/thread/5ffb0ed46a4bcb4b
>>
>> Seems like it can work. Don't you only need one bit for writes
>> though?
>
> It's essentially the same algorithm I've used in my latest offering
> on the thread_rewrite branch.
>
> http://boost.cvs.sourceforge.net/boost/boost/boost/thread/win32/read_write_mutex.hpp?revision=1.1.2.8&view=markup&pathrev=thread_rewrite
Do you plan to document the algorithm? I'm interested in the following
scenario:
- K active readers are holding the lock
- a writer is waiting for the above
- L readers are wating for the writer
Since you seem to only store K+L (Chris's algorithm has separate counts),
how do you know when to signal the writer?
Boost list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk