зеркало из 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>
|
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
|
* 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.
|
# Sets the maximum size of the queue.
|
||||||
#
|
#
|
||||||
def max=(max)
|
def max=(max)
|
||||||
|
raise ArgumentError, "queue size must be positive" unless max > 0
|
||||||
diff = nil
|
diff = nil
|
||||||
@mutex.synchronize {
|
@mutex.synchronize {
|
||||||
if max <= @max
|
if max <= @max
|
||||||
|
|
|
@ -35,4 +35,22 @@ class TestQueue < Test::Unit::TestCase
|
||||||
assert_equal 0, from_workers.size
|
assert_equal 0, from_workers.size
|
||||||
assert_equal 0, to_workers.size
|
assert_equal 0, to_workers.size
|
||||||
end
|
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
|
end
|
||||||
|
|
Загрузка…
Ссылка в новой задаче