Sha256: 85305b4cbaf15ec92875b7da0bbdf5d38812fdac7994839ca4b499cfd6eb36fe

Contents?: true

Size: 456 Bytes

Versions: 1

Compression:

Stored size: 456 Bytes

Contents

require 'thread'

class Object
  def synchronize(&block)
    @mutex ||= Mutex.new
    @mutex.synchronize &block
  end
end

class ThreadSafeArray
  def initialize
    @mutex = Mutex.new
    @array = []
  end

  def method_missing(method, *args, &block)
    @mutex.synchronize do
      @array.send method, *args, &block
    end
  end

  def inspect
    @mutex.synchronize { @array.inspect }
  end

  def to_s
    @mutex.synchronize { @array.to_s }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
adhearsion-2.0.0.beta1 lib/adhearsion/foundation/thread_safety.rb