diff options
| -rw-r--r-- | lib/timeout.rb | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/timeout.rb b/lib/timeout.rb index 428104863a..6aa938cdcf 100644 --- a/lib/timeout.rb +++ b/lib/timeout.rb @@ -54,8 +54,6 @@ module Timeout private_constant :GET_TIME class State - attr_reader :condvar, :queue, :queue_mutex # shared with Timeout.timeout() - def initialize @condvar = ConditionVariable.new @queue = Queue.new @@ -132,6 +130,13 @@ module Timeout end end end + + def add_request(request) + @queue_mutex.synchronize do + @queue << request + @condvar.signal + end + end end private_constant :State @@ -263,10 +268,7 @@ module Timeout perform = Proc.new do |exc| request = Request.new(Thread.current, sec, exc, message) - state.queue_mutex.synchronize do - state.queue << request - state.condvar.signal - end + state.add_request(request) begin return yield(sec) ensure |
