If this is not empty, atomically acquire a strong reference to the object it points to, and return that reference.
This function is needed because of the potential race between taking the pointer value and @ref on it, if the object was losing its last reference at the same time in a different thread.
The caller should release the resulting reference in the usual way, by using unref.
this |
location of a weak reference to a Object |
the object pointed to by this, or null if it was empty |