summaryrefslogtreecommitdiff
path: root/lib/timeout.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/timeout.rb')
-rw-r--r--lib/timeout.rb5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/timeout.rb b/lib/timeout.rb
index 24ffccb0da..aa9bcaf100 100644
--- a/lib/timeout.rb
+++ b/lib/timeout.rb
@@ -98,8 +98,7 @@ module Timeout
private_constant :Request
def self.create_timeout_thread
- Thread.new do
- Thread.current.thread_variable_set(:"\0__detached_thread__", true)
+ watcher = Thread.new do
requests = []
while true
until QUEUE.empty? and !requests.empty? # wait to have at least one request
@@ -121,6 +120,8 @@ module Timeout
requests.reject!(&:done?)
end
end
+ watcher.thread_variable_set(:"\0__detached_thread__", true)
+ watcher
end
private_class_method :create_timeout_thread