Method: Concurrent::CAtomicFixnum#update
- Defined in:
- ext/concurrent-ruby-ext/atomic_fixnum.c
#update ⇒ Object
71 72 73 74 75 76 77 78 79 80 |
# File 'ext/concurrent-ruby-ext/atomic_fixnum.c', line 71 VALUE method_atomic_fixnum_update(VALUE self) { VALUE old_value, new_value; for (;;) { old_value = method_atomic_fixnum_value(self); new_value = rb_yield(old_value); if (ir_compare_and_set(self, old_value, new_value) == Qtrue) { return new_value; } } } |