Module: Concurrent::AtomicNumericCompareAndSetWrapper
- Defined in:
- lib/concurrent/atomic_reference/numeric_cas_wrapper.rb
Overview
Special “compare and set” handling of numeric values.
Instance Method Summary collapse
- #compare_and_set(old_value, new_value) ⇒ Object (also: #compare_and_swap)
Instance Method Details
#compare_and_set(old_value, new_value) ⇒ Object Also known as: compare_and_swap
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/concurrent/atomic_reference/numeric_cas_wrapper.rb', line 7 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 |