зеркало из https://github.com/github/ruby.git
* lib/thread.rb (SizedQueue#max=) raise ArgumentError if max is not
positive number. patch by Masaki Matsushita. [ruby-dev:44449] [Bug #5259] * test/thread/test_queue.rb (test_sized_queue_initialize, test_sized_queue_assign_max): add tests for it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33170 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
b31c817782
Коммит
a46d29bb4e
|
@ -1,3 +1,12 @@
|
|||
Sat Sep 3 18:40:57 2011 CHIKANAGA Tomoyuki <nagachika00@gmail.com>
|
||||
|
||||
* lib/thread.rb (SizedQueue#max=) raise ArgumentError if max is not
|
||||
positive number. patch by Masaki Matsushita.
|
||||
[ruby-dev:44449] [Bug #5259]
|
||||
|
||||
* test/thread/test_queue.rb (test_sized_queue_initialize,
|
||||
test_sized_queue_assign_max): add tests for it.
|
||||
|
||||
Fri Sep 2 21:11:16 2011 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* io.c (validate_enc_binmode, prep_stdio): default to text mode on
|
||||
|
|
|
@ -269,6 +269,7 @@ class SizedQueue < Queue
|
|||
# Sets the maximum size of the queue.
|
||||
#
|
||||
def max=(max)
|
||||
raise ArgumentError, "queue size must be positive" unless max > 0
|
||||
diff = nil
|
||||
@mutex.synchronize {
|
||||
if max <= @max
|
||||
|
|
|
@ -35,4 +35,22 @@ class TestQueue < Test::Unit::TestCase
|
|||
assert_equal 0, from_workers.size
|
||||
assert_equal 0, to_workers.size
|
||||
end
|
||||
|
||||
def test_sized_queue_initialize
|
||||
q = SizedQueue.new(1)
|
||||
assert_equal 1, q.max
|
||||
assert_raise(ArgumentError) { SizedQueue.new(0) }
|
||||
assert_raise(ArgumentError) { SizedQueue.new(-1) }
|
||||
end
|
||||
|
||||
def test_sized_queue_assign_max
|
||||
q = SizedQueue.new(2)
|
||||
assert_equal(2, q.max)
|
||||
q.max = 1
|
||||
assert_equal(1, q.max)
|
||||
assert_raise(ArgumentError) { q.max = 0 }
|
||||
assert_equal(1, q.max)
|
||||
assert_raise(ArgumentError) { q.max = -1 }
|
||||
assert_equal(1, q.max)
|
||||
end
|
||||
end
|
||||
|
|
Загрузка…
Ссылка в новой задаче