about summary refs log tree commit homepage
path: root/lib/yahns/server.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/yahns/server.rb')
-rw-r--r--lib/yahns/server.rb4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/yahns/server.rb b/lib/yahns/server.rb
index f956d50..ddba8f2 100644
--- a/lib/yahns/server.rb
+++ b/lib/yahns/server.rb
@@ -416,6 +416,10 @@ class Yahns::Server # :nodoc:
 
     # cleanup, our job is done
     @queues.each(&:close).clear
+
+    # we must not let quitter get GC-ed if we have any worker threads leftover
+    @wthr.each { |t| t[:yahns_quitter] = quitter }
+
     quitter.close
   rescue => e
     Yahns::Log.exception(@logger, "quit finish", e)