Actions
Bug #9302
closed[PATCH] thread: fix deadlock/freeze on SizedQueue#push
Description
SizedQueue#push needs to check the thread list for threads
waiting on enqueue. Checking the wrong thread list leads
strange/surprising behavior when the the queue is full.
This needs to be backported to 2.1.0 (not 2.0.0 or earlier)
Files
Updated by Anonymous almost 11 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
Applied in changeset r44583.
-
ext/thread/thread.c (rb_szqueue_push): check GET_SZQUEUE_WAITERS
instead of GET_QUEUE_WAITERS to prevent deadlock. Patch by Eric Wong.
[Bug #9302] [ruby-core:59324] -
test/thread/test_queue.rb: add test
Updated by Anonymous almost 11 years ago
- Status changed from Closed to Open
- Assignee set to naruse (Yui NARUSE)
- % Done changed from 100 to 0
- Backport changed from 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN to 1.9.3: DONTNEED, 2.0.0: DONTNEED, 2.1: REQUIRED
Updated by naruse (Yui NARUSE) almost 11 years ago
- Backport changed from 1.9.3: DONTNEED, 2.0.0: DONTNEED, 2.1: REQUIRED to 1.9.3: DONTNEED, 2.0.0: DONTNEED, 2.1: DONE
Updated by hsbt (Hiroshi SHIBATA) over 10 years ago
- Status changed from Open to Closed
Actions
Like0
Like0Like0Like0Like0