# File lib/thread_safe/atomic_reference_cache_backend.rb, line 418
    def compute_if_present(key)
      new_value = nil
      internal_replace(key) do |old_value|
        if (new_value = yield(NULL == old_value ? nil : old_value)).nil?
          NULL
        else
          new_value
        end
      end
      new_value
    end