Although I believe this works correctly, it might somehow be possible (but I couldn't create an example), where the destrucion of an object is unwanted since the refernceount would be increaed directly by another thread.