$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Tim Blechmann (tim_at_[hidden])
Date: 2008-04-28 17:29:46
> I'd be interested in contributing. This seems well designed already,
> but I see some improvements:
great!
> I want intrusive versions of stack/queue. The freelist could also be
> made to use the stack.
i once tried to adapt the queue algorithm to an intrusive version, it is
not really straight forward, though ...
when you dequeue a node from the queue, it may still be referred to by
other threads, thus you are not able (in this version not allowed!) to
free the node ...
> The allocator should put blocks on cache-line boundaries.
yes, that probably makes sense ...
> The algo works inefficiently on IA64 because it copies the pointer when
> IA64 only needs to copy the ABA counter (it has cmp8xchg16b). This can
> be reworked to have a tagged_ptr<>::cmp_type instead of comparing with
> another tagged_ptr.
oh, nice ...
> CAS on x86 will give you the old value if it fails. CAS should be
> changed to modify the compare arg, so you can write a loop without
> constantly loading the destination:
>
> cmp_type cmp = dest;
> do {
> ...
> } while(!CAS(dest, exch, cmp));
good point ...
btw, i have set up a git repository,
git://tim.klingt.org/boost_lockfree.git
cheers, tim
-- tim_at_[hidden] http://tim.klingt.org The aim of education is the knowledge, not of facts, but of values William S. Burroughs