Ensure thread-pool shutdown.

This commit is contained in:
Markus Reiter 2024-09-07 14:45:30 +02:00
parent 69a04bd249
commit b68ee4142f
No known key found for this signature in database
GPG Key ID: 245293B51702655B
2 changed files with 12 additions and 1 deletions

View File

@ -301,6 +301,8 @@ module Homebrew
# FIXME: Implement cancellation of running downloads.
end
download_queue.cancel
if previous_pending_line_count.positive?
$stdout.print Tty.move_cursor_down(previous_pending_line_count - 1)
$stdout.flush
@ -314,7 +316,7 @@ module Homebrew
$stdout.flush
end
end
ensure
download_queue.shutdown
end

View File

@ -28,9 +28,18 @@ module Homebrew
# rubocop:enable Lint/ShadowingOuterLocalVariable
end
sig { void }
def cancel
# FIXME: Implement graceful cancellaction of running downloads based on
# https://ruby-concurrency.github.io/concurrent-ruby/master/Concurrent/Cancellation.html
# instead of killing the whole thread pool.
pool.kill
end
sig { void }
def shutdown
pool.shutdown
pool.wait_for_termination
end
end
end