Pavel Vasiliev wrote: [...] > Thread A, in release_strong: > atomic_decrement(&strong_count) == 0, > enter strong_refs_lost(), > lock
ACK. > Thread B, in acquire_strong_from_weak: .... NAK. Thread B, in release_weak: atomic_decrement(&weak_count) == 0, > Thread A, in strong_refs_lost: > see strong_count == 0, acquire_weak() --> weak_count == 1, ... enter release_weak(), atomic_decrement(&weak_count) == 0, Thread B, enter weak_refs_lost(): ... destruct_self() Thread A, enter weak_refs_lost(): WHACK! Or am I just missing and/or misunderstanding something? regards, alexander. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost