Boost logo

Boost :

From: Anthony Williams (anthony_w.geo_at_[hidden])
Date: 2006-10-24 08:42:07

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

I use 3 bits for the actual state (1 bit for currently shared, 1 for currently
exclusive, and 1 for shared with upgradable), a 14 bit count of waiting
writers, and a 15 bit count of waiting/running readers, so it all fits in a
32-bit word, and I can use plain CAS rather than DWCAS. I've also extended the
algorithm to cover upgradeable locks.


Anthony Williams
Software Developer
Just Software Solutions Ltd

Boost list run by bdawes at, gregod at, cpdaniel at, john at