diff --git a/supervisor/supervisord.py b/supervisor/supervisord.py index a786163d2..aa8e2353e 100755 --- a/supervisor/supervisord.py +++ b/supervisor/supervisord.py @@ -220,6 +220,9 @@ def runforever(self): 'read event caused by %(dispatcher)r', dispatcher=dispatcher) dispatcher.handle_read_event() + if (not dispatcher.readable() + and not dispatcher.writable()): + self.options.poller.unregister(fd) except asyncore.ExitNow: raise except: @@ -233,6 +236,9 @@ def runforever(self): 'write event caused by %(dispatcher)r', dispatcher=dispatcher) dispatcher.handle_write_event() + if (not dispatcher.readable() + and not dispatcher.writable()): + self.options.poller.unregister(fd) except asyncore.ExitNow: raise except: