Sha256: 86d470a7646cf96617cc74789be4d42bab95c33b3f23c77ad34d114788a7b4a3

Contents?: true

Size: 810 Bytes

Versions: 4

Compression:

Stored size: 810 Bytes

Contents

module Concurrent

  # @!macro thread_local_var
  # @!macro internal_implementation_note
  # @!visibility private
  class AbstractThreadLocalVar

    # @!visibility private
    NIL_SENTINEL = Object.new
    private_constant :NIL_SENTINEL

    # @!macro thread_local_var_method_initialize
    def initialize(default = nil)
      @default = default
      allocate_storage
    end

    # @!macro thread_local_var_method_get
    def value
      raise NotImplementedError
    end

    # @!macro thread_local_var_method_set
    def value=(value)
      raise NotImplementedError
    end

    # @!macro thread_local_var_method_bind
    def bind(value, &block)
      raise NotImplementedError
    end

    protected

    # @!visibility private
    def allocate_storage
      raise NotImplementedError
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
concurrent-ruby-1.0.0.pre2-java lib/concurrent/atomic/abstract_thread_local_var.rb
concurrent-ruby-1.0.0.pre2 lib/concurrent/atomic/abstract_thread_local_var.rb
concurrent-ruby-1.0.0.pre1 lib/concurrent/atomic/abstract_thread_local_var.rb
concurrent-ruby-1.0.0.pre1-java lib/concurrent/atomic/abstract_thread_local_var.rb