Sha256: b9873c009c7dff36217bc4004039fe0309d5e31e6a864f85fa139e80f848e2da

Contents?: true

Size: 894 Bytes

Versions: 4

Compression:

Stored size: 894 Bytes

Contents

# Copyright: Copyright (c) 2004  Nicolas Despres. All rights reserved.
# Author: Nicolas Despres  <polrop@lrde.epita.fr>.
# License: Gnu General Public License.

# $LastChangedBy: ertai $
# $Id: queue.rb 53 2004-12-02 22:24:03Z ertai $


require 'thread'


class Queue

  alias put push
  alias get pop

end # class Queue


#
# Unit test suite
#
if defined? TEST_MODE or $0 == __FILE__


require 'test/unit/ui/yaml/testrunner'


class QueueTest < Test::Unit::TestCase

  #
  # tests
  #
  def test_simple
    q = Queue.new
    thr1 = Thread.new do
      while q.empty? do end
      assert_equal(2, q.size)
      assert_equal(2, q.length)
      assert_equal('hello', q.get)
      assert_equal('world', q.get)
      assert(q.empty?)
    end
    thr2 = Thread.new do
      sleep(0.2)
      q.put('hello')
      q.put('world')
    end
    thr1.join
    thr2.join
  end

end # class QueueTest


end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
ttk-0.1.576 ruby_ex/queue.rb
ttk-0.1.579 ruby_ex/queue.rb
ttk-0.1.580 ruby_ex/queue.rb
vcs-0.2.148 ruby_ex/queue.rb