Module: Farce::Shareable::Tracked

Overview

A structurally frozen wrapper with one shared logical freeze-state flag. Mutating methods must call check_frozen! before changing state.

Examples:

Track freezing separately from storage

class Tally
  include Farce::Shareable::Tracked

  def initialize
    @counter = Farce::Counter.new
    super
  end

  def increment
    check_frozen!
    @counter.increment
  end
end

tally = Tally.new
tally.frozen? # => false
tally.freeze
tally.increment # raises FrozenError for the tally

Method Summary

Methods included from Farce::Shareable

#initialize, #ractor_shareable?