summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/timeout.rb14
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