News for hackers. Stuff that matters.
Re:Common Pitfalls in Writing Lock-Free Algorithms by dannywoodz on Thursday March 28, 2013 @11:52AM (#5455535)
Isn't the very first example in that article flawed?

    void decrement_reference_counter(rc_base* obj)
    {
        if (0 == atomic_decrement(obj->rc))
            delete obj;
    }
This is classic test-then-act, isn't it? What happens if another thread bumps obj->rc after the comparison to 0, but before the deletion? That other thread could find itself referring to a suddenly-deleted object, or am I missing something?

There are no comments on this comment yet.