Module: Garcon::AtomicNumericCompareAndSetWrapper
- Included in:
- AtomicMutex
- Defined in:
- lib/garcon/task/atomic.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
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# 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 |