On Jan 19, 8:00 pm, "Brendan Miller" <catph...@catphive.net> wrote: > Maybe I'm missing something here but a lock free algorithm for > reference counting seems pretty trivial. As long as you can atomically > increment and decrement an integer without locking you are pretty much > done.
You're missing that most of the platforms that Python supports can't actually do this. Keep in mind that it has to be atomic across all cores. (For Python to use such a technique, it would have to be doable on every platform Python supports. They aren't going to get rid of the GIL for some platforms and not others.) > For a reference implementation of lock free reference counting on all > common platforms check out boosts implementation of shared_ptr (a > reference counting smart pointer designed around multithreaded use > cases). I just looked at the boost documentation, which claims that multiple asynchronous writes to the same shared_ptr results in undefined behavior. That will not suffice for Python reference counting. Carl Banks -- http://mail.python.org/mailman/listinfo/python-list