Bug #5195 » patch.diff
| lib/thread.rb | ||
|---|---|---|
|       while true | ||
|         if @que.empty? | ||
|           raise ThreadError, "queue empty" if non_block | ||
|           @waiting.push Thread.current | ||
|           @waiting.push Thread.current unless @waiting.include?(Thread.current) | ||
|           @mutex.sleep | ||
|         else | ||
|           return @que.shift | ||