Boost logo

Boost :

From: Howard Hinnant (hinnant_at_[hidden])
Date: 2005-09-09 08:51:21


On Sep 9, 2005, at 7:57 AM, John Maddock wrote:

>> If priority policy is the overriding issue, I recommend considering
>> Alexander Terekhov's algorithm summarized here:
>
> Interesting, clearly using interlocked operations where possible is a
> real
> win, and would certainly be easy to implement on Win32.

That should be in capitals: Real Win (tm) ;-)

http://home.twcny.rr.com/hinnant/cpp_extensions/rw_perf.html

(which is a PPC implementation making use of atomic primitives)

Note this is not lock-free. It is only lock-free in the case of no
contention for the mutex. If there is contention, an OS mutex must be
locked. I'm calling it lock-reduced for lack of better terminology at
the moment.

> Unfortunately, I don't believe the algorithm you provide is compatible
> with
> the current interface, which promises to let the user choose how to
> schedule
> interleaves between readers and writers. On the other hand, it is that
> interface which is part of the problem: it introduces too much
> complexity,
> and too many code-paths through which locking could occur to be able to
> analyse the code easily. So maybe we should dump the current
> interface.

Or maybe independently develop the Terekhov algorithm, and stress test
the two side by side ... um if we can get the current interface
working.

-Howard


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