module Garcon::AtomicNumericCompareAndSetWrapper

Special “compare and set” handling of numeric values.

Public Instance Methods

compare_and_set(old_value, new_value) click to toggle source
# File lib/garcon/task/atomic.rb, line 64
def compare_and_set(old_value, new_value)
  if old_value.kind_of? Numeric
    while true
      old = get

      return false unless old.kind_of? Numeric

      return false unless old == old_value

      result = _compare_and_set(old, new_value)
      return result if result
    end
  else
    _compare_and_set(old_value, new_value)
  end
end
Also aliased as: compare_and_swap
compare_and_swap(old_value, new_value)
Alias for: compare_and_set