# File lib/thread_safe/util/atomic_reference.rb, line 28 def compare_and_set(old_value, new_value) return false unless @___mutex.try_lock begin return false unless @___value.equal? old_value @___value = new_value ensure @___mutex.unlock end true end