gdataset, gobject: Use atomic compare and exchange full to set pointers
In case first exchange failed we can avoid repeating the pointer get operation given that exchange full can provide us the old value.
Similar to c95bf051
In case first exchange failed we can avoid repeating the pointer get operation given that exchange full can provide us the old value.
Similar to c95bf051