class ThreadSafe::Util::Striped64::Cell

Padded variant of AtomicLong supporting only raw accesses plus CAS. The value field is placed between pads, hoping that the JVM doesn't reorder them.

Optimisation note: It would be possible to use a release-only form of CAS here, if it were provided.

Public Instance Methods

cas_computed() { |current_value| ... } click to toggle source
# File lib/thread_safe/util/striped64.rb, line 77
def cas_computed
  cas(current_value = value, yield(current_value))
end