class Concurrent::ThreadSafe::Util::Striped64::Cell

@!visibility private
form of CAS here, if it were provided.
Optimisation note: It would be possible to use a release-only
reorder them.
The value field is placed between pads, hoping that the JVM doesn’t
Padded variant of AtomicLong supporting only raw accesses plus CAS.

def self.padding

@!visibility private
def self.padding
  # TODO: this only adds padding after the :value slot, need to find a way to add padding before the slot
  # TODO (pitr-ch 28-Jul-2018): the padding instance vars may not be created
  # hide from yardoc in a method
  attr_reader *(12.times.collect{ |i| "padding_#{i}".to_sym })
end

def cas_computed

def cas_computed
  cas(current_value = value, yield(current_value))
end