1. A lock-free method for managing deallocation of a shared object, the method comprising: separately encoding at least two respective reference count values that contribute to a total count of references to the shared object; maintaining a first one of the reference count values in correspondence with creation and destruction of shared references to the shared object; and maintaining in association with each of the shared references to the shared object, a respective second one of the reference count values, the second reference count value maintaining being in correspondence with creation and destruction of private copies of the respective shared reference.