Actions
Bug #5259
closedSizedQueue#max=で正でない数を指定できてしまう
Description
=begin
SizedQueue#max=で正でない数を指定できてしまいます。
require 'thread'
sq = SizedQueue.new(1)
sq.max = -1
p sq.max #=> -1
sq.push(nil) #=> deadlock detected
SizedQueue.newでは引数が正の数であるかどうかチェックが行われていますが、SizedQueue#max=ではそのようなチェックが行われていません。
これはバグではないでしょうか。
patchを添付します。
=end
Files
Updated by nagachika (Tomoyuki Chikanaga) over 13 years ago
- Status changed from Open to Assigned
- Assignee set to nagachika (Tomoyuki Chikanaga)
おっしゃる通りだと思いますので、テストを追加してコミットしておきます。
報告ありがとうございました。
Updated by nagachika (Tomoyuki Chikanaga) over 13 years ago
- Status changed from Assigned to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r33170.
Masaki, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
-
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.
Actions
Like0
Like0Like0