diff --git a/lib/rubygems/gemcutter_utilities/webauthn_listener.rb b/lib/rubygems/gemcutter_utilities/webauthn_listener.rb index ee3fc7bcab..f8158aa597 100644 --- a/lib/rubygems/gemcutter_utilities/webauthn_listener.rb +++ b/lib/rubygems/gemcutter_utilities/webauthn_listener.rb @@ -34,14 +34,14 @@ module Gem::GemcutterUtilities def self.listener_thread(host, server) thread = Thread.new do + Thread.abort_on_exception = true + Thread.report_on_exception = false Thread.current[:otp] = new(host).wait_for_otp_code(server) rescue Gem::WebauthnVerificationError => e Thread.current[:error] = e ensure server.close end - thread.abort_on_exception = true - thread.report_on_exception = false thread end diff --git a/lib/rubygems/gemcutter_utilities/webauthn_poller.rb b/lib/rubygems/gemcutter_utilities/webauthn_poller.rb index 766b38584e..7ffd472ad3 100644 --- a/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +++ b/lib/rubygems/gemcutter_utilities/webauthn_poller.rb @@ -33,12 +33,12 @@ module Gem::GemcutterUtilities def self.poll_thread(options, host, webauthn_url, credentials) thread = Thread.new do + Thread.abort_on_exception = true + Thread.report_on_exception = false Thread.current[:otp] = new(options, host).poll_for_otp(webauthn_url, credentials) rescue Gem::WebauthnVerificationError, Timeout::Error => e Thread.current[:error] = e end - thread.abort_on_exception = true - thread.report_on_exception = false thread end