summaryrefslogtreecommitdiff
path: root/www-servers/puma/files/puma-3.12.1-ruby26-waitpid.patch
diff options
context:
space:
mode:
Diffstat (limited to 'www-servers/puma/files/puma-3.12.1-ruby26-waitpid.patch')
-rw-r--r--www-servers/puma/files/puma-3.12.1-ruby26-waitpid.patch47
1 files changed, 0 insertions, 47 deletions
diff --git a/www-servers/puma/files/puma-3.12.1-ruby26-waitpid.patch b/www-servers/puma/files/puma-3.12.1-ruby26-waitpid.patch
deleted file mode 100644
index b28c69fa4d4b..000000000000
--- a/www-servers/puma/files/puma-3.12.1-ruby26-waitpid.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From b94c3e34faff024a5b1930af36e4d64bd6dde57f Mon Sep 17 00:00:00 2001
-From: MSP-Greg <MSP-Greg@users.noreply.github.com>
-Date: Fri, 15 Mar 2019 17:26:20 -0500
-Subject: [PATCH] Puma::Cluster#stop_workers - use WNOHANG with nil return
- tests
-
-Ruby 2.6 introduced a bug that affects worker shutdown (waitpid).
-
-Added code using Process::WNOHANG along with needed logic. Adds worker status (via $?) and total shutdown time to log.
-
-Co-authored-by: MSP-Greg <greg.mpls@gmail.com>
-Co-authored-by: guilleiguaran <guilleiguaran@gmail.com>
----
- lib/puma/cluster.rb | 20 +++++++++++++++++++-
- 1 file changed, 19 insertions(+), 1 deletion(-)
-
-diff --git a/lib/puma/cluster.rb b/lib/puma/cluster.rb
-index 93d65131..0879c96c 100644
---- a/lib/puma/cluster.rb
-+++ b/lib/puma/cluster.rb
-@@ -37,7 +37,25 @@ def stop_workers
- @workers.each { |x| x.term }
-
- begin
-- @workers.each { |w| Process.waitpid(w.pid) }
-+ if RUBY_VERSION < '2.6'
-+ @workers.each { |w| Process.waitpid(w.pid) }
-+ else
-+ # below code is for a bug in Ruby 2.6+, above waitpid call hangs
-+ t_st = Process.clock_gettime(Process::CLOCK_MONOTONIC)
-+ pids = @workers.map(&:pid)
-+ loop do
-+ pids.reject! do |w_pid|
-+ if Process.waitpid(w_pid, Process::WNOHANG)
-+ log " worker status: #{$?}"
-+ true
-+ end
-+ end
-+ break if pids.empty?
-+ sleep 0.5
-+ end
-+ t_end = Process.clock_gettime(Process::CLOCK_MONOTONIC)
-+ log format(" worker shutdown time: %6.2f", t_end - t_st)
-+ end
- rescue Interrupt
- log "! Cancelled waiting for workers"
- end