about summary refs log tree commit homepage
path: root/lib/unicorn.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/unicorn.rb')
-rw-r--r--lib/unicorn.rb6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/unicorn.rb b/lib/unicorn.rb
index f8e0a5d..6b50319 100644
--- a/lib/unicorn.rb
+++ b/lib/unicorn.rb
@@ -110,8 +110,10 @@ module Unicorn
 
       @listeners.delete_if do |io|
         if dead_names.include?(sock_name(io))
-          @io_purgatory.delete_if { |pio| pio.fileno == io.fileno }
-          true
+          @io_purgatory.delete_if do |pio|
+            pio.fileno == io.fileno && (pio.close rescue nil).nil?
+          end
+          (io.close rescue nil).nil?
         else
           false
         end