[rubygems/rubygems] Set thread configurations inside block in the thread local manner
https://github.com/rubygems/rubygems/commit/965e54b8f1
This commit is contained in:
parent
0d86cc4caf
commit
67be453d9d
@ -33,17 +33,16 @@ module Gem::GemcutterUtilities
|
|||||||
end
|
end
|
||||||
|
|
||||||
def self.listener_thread(host, server)
|
def self.listener_thread(host, server)
|
||||||
thread = Thread.new do
|
Thread.new do
|
||||||
Thread.current[:otp] = new(host).wait_for_otp_code(server)
|
thread = Thread.current
|
||||||
|
thread.abort_on_exception = true
|
||||||
|
thread.report_on_exception = false
|
||||||
|
thread[:otp] = new(host).wait_for_otp_code(server)
|
||||||
rescue Gem::WebauthnVerificationError => e
|
rescue Gem::WebauthnVerificationError => e
|
||||||
Thread.current[:error] = e
|
thread[:error] = e
|
||||||
ensure
|
ensure
|
||||||
server.close
|
server.close
|
||||||
end
|
end
|
||||||
thread.abort_on_exception = true
|
|
||||||
thread.report_on_exception = false
|
|
||||||
|
|
||||||
thread
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def wait_for_otp_code(server)
|
def wait_for_otp_code(server)
|
||||||
|
@ -32,15 +32,14 @@ module Gem::GemcutterUtilities
|
|||||||
end
|
end
|
||||||
|
|
||||||
def self.poll_thread(options, host, webauthn_url, credentials)
|
def self.poll_thread(options, host, webauthn_url, credentials)
|
||||||
thread = Thread.new do
|
Thread.new do
|
||||||
Thread.current[:otp] = new(options, host).poll_for_otp(webauthn_url, credentials)
|
thread = Thread.current
|
||||||
|
thread.abort_on_exception = true
|
||||||
|
thread.report_on_exception = false
|
||||||
|
thread[:otp] = new(options, host).poll_for_otp(webauthn_url, credentials)
|
||||||
rescue Gem::WebauthnVerificationError, Timeout::Error => e
|
rescue Gem::WebauthnVerificationError, Timeout::Error => e
|
||||||
Thread.current[:error] = e
|
thread[:error] = e
|
||||||
end
|
end
|
||||||
thread.abort_on_exception = true
|
|
||||||
thread.report_on_exception = false
|
|
||||||
|
|
||||||
thread
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def poll_for_otp(webauthn_url, credentials)
|
def poll_for_otp(webauthn_url, credentials)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user