From cd6f87eefc35922d21a1889e038c9f50f229004f Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Wed, 25 May 2022 19:50:36 +0900 Subject: [ruby/timeout] Set the flag surely before return https://github.com/ruby/timeout/commit/f3a31abdfb --- lib/timeout.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'lib/timeout.rb') 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 -- cgit v1.2.3