atomic return old value