
10 Nov
2006
10 Nov
'06
5:32 p.m.
Peter Dimov wrote:
bool compare_and_swap( shared_ptr & p, shared_ptr const & cmp, shared_ptr xchg )
lock spinlock for p bool r = p == cmp; if( r ) p.swap( xchg ); unlock spinlock for p return r;
This actually should be trylock spinlock for p if failed return false bool r = p == cmp; if( r ) p.swap( xchg ); unlock spinlock for p return r;