Skip to content

Commit cb2ba88

Browse files
committed
Encapsulate adding a timeout Request
1 parent 7cfa5a6 commit cb2ba88

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

lib/timeout.rb

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,6 @@ def self.handle_timeout(message) # :nodoc:
5454
private_constant :GET_TIME
5555

5656
class State
57-
attr_reader :condvar, :queue, :queue_mutex # shared with Timeout.timeout()
58-
5957
def initialize
6058
@condvar = ConditionVariable.new
6159
@queue = Queue.new
@@ -132,6 +130,13 @@ def ensure_timeout_thread_created
132130
end
133131
end
134132
end
133+
134+
def add_request(request)
135+
@queue_mutex.synchronize do
136+
@queue << request
137+
@condvar.signal
138+
end
139+
end
135140
end
136141
private_constant :State
137142

@@ -263,10 +268,7 @@ def self.timeout(sec, klass = nil, message = nil, &block) #:yield: +sec+
263268

264269
perform = Proc.new do |exc|
265270
request = Request.new(Thread.current, sec, exc, message)
266-
state.queue_mutex.synchronize do
267-
state.queue << request
268-
state.condvar.signal
269-
end
271+
state.add_request(request)
270272
begin
271273
return yield(sec)
272274
ensure

0 commit comments

Comments
 (0)