I wrote this ThreadSafeArray class. Seems to work, but I thought I'd throw
it out here for review. Any holes in this approach?

class ThreadSafeArray
  def initialize
    @mutex = Mutex.new
    @internalArray = []
  end
  
  def ary
    @internalArray
  end
  
  def method_missing(method, *args, &block)
    @mutex.lock
    begin
      @internalArray.send(method, *args, &block)
    ensure
      @mutex.unlock
    end
  end
end

Chris Morris
chris.morris / snelling.com