about summary refs log tree commit homepage
path: root/lib/yahns/queue_epoll.rb
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2013-11-07 04:02:44 +0000
committerEric Wong <normalperson@yhbt.net>2013-11-07 05:00:11 +0000
commit9ec392b437900842a799894194f6b4c2155e604e (patch)
treec6aa3dbc3b52369f03ca32381067d3be9c4b2ce7 /lib/yahns/queue_epoll.rb
parent59c9c3c2c1904e74739d23f2574f0e7cdbf1a474 (diff)
downloadyahns-9ec392b437900842a799894194f6b4c2155e604e.tar.gz
apps/responses may trickle infinitely, so our QueueQuitter may
not properly kill epoll worker threads, unfortunately.  So we'll
start the timer and stop waiting (risking segfaults/ugliness) by
closing epoll descriptors
Diffstat (limited to 'lib/yahns/queue_epoll.rb')
-rw-r--r--lib/yahns/queue_epoll.rb1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/yahns/queue_epoll.rb b/lib/yahns/queue_epoll.rb
index 665b87c..3e6536b 100644
--- a/lib/yahns/queue_epoll.rb
+++ b/lib/yahns/queue_epoll.rb
@@ -59,6 +59,7 @@ class Yahns::Queue < SleepyPenguin::Epoll::IO # :nodoc:
           end
         end
       rescue => e
+        break if closed? # can still happen due to shutdown_timeout
         Yahns::Log.exception(logger, 'queue loop', e)
       end while true
     end