Actions
Bug #21218
closedSizedQueue not stopping threads in push even when non_block: false
Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 3.1.4p223 (2023-03-30 revision 957bb7cb81) +YJIT [x86_64-linux]
Description
Use this to recreate
3.1.4 :019 > sq.push(1, non_block: true)
=> #<Thread::SizedQueue:0x00007f39e759af60>
3.1.4 :020 > sq.push(1, non_block: true)
(irb):20:in `push': queue full (ThreadError)
3.1.4 :021 > sq.push(1, non_block: false)
(irb):21:in `push': queue full (ThreadError)
3.1.4 :022 > sq.push(1)
----thread waits
When non_block
parameter is not passed (neither true/false) only then the threads wait
Updated by jeremyevans0 (Jeremy Evans) 7 days ago
- Status changed from Open to Rejected
The non_block
argument is a positional argument, not a keyword argument, and {non_block: true}
is considered true (only nil
and false
are considered false). You want sq.push(1, false)
to explicitly set the non_block
argument to false.
Actions
Like0
Like0