class Plumb::Deferred
def cached_type
def cached_type synchronize do hed_type = @definition.call .define_singleton_method(:cached_type) do ached_type hed_type
def call(result)
def call(result) cached_type.call(result) end
def initialize(definition)
def initialize(definition) @lock = Mutex.new @definition = definition @cached_type = nil # freeze end