]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Fixed shutdown sequence in twisted reactor
authorStiletto <blasux@blasux.ru>
Mon, 30 Jul 2012 20:25:04 +0000 (00:25 +0400)
committerStiletto <blasux@blasux.ru>
Mon, 6 Aug 2012 15:44:03 +0000 (19:44 +0400)
tornado/platform/twisted.py

index 6474a4788b7800bef59420d667e682fa30d8a6b9..07ca8c58e54379f05f57cc423d3a2ab43579318f 100644 (file)
@@ -127,6 +127,7 @@ class TornadoReactor(PosixReactorBase):
         self._fds = {}  # a map of fd to a (reader, writer) tuple
         self._delayedCalls = {}
         PosixReactorBase.__init__(self)
+        self.addSystemEventTrigger('during', 'shutdown', self.crash)
 
         # IOLoop.start() bypasses some of the reactor initialization.
         # Fire off the necessary events if they weren't already triggered
@@ -280,7 +281,7 @@ class TornadoReactor(PosixReactorBase):
     # IOLoop.start() instead of Reactor.run().
     def stop(self):
         PosixReactorBase.stop(self)
-        self._io_loop.stop()
+        self.fireSystemEvent("shutdown")
 
     def crash(self):
         PosixReactorBase.crash(self)
@@ -291,8 +292,6 @@ class TornadoReactor(PosixReactorBase):
 
     def mainLoop(self):
         self._io_loop.start()
-        if self._stopped:
-            self.fireSystemEvent("shutdown")
 TornadoReactor = implementer(IReactorTime, IReactorFDSet)(TornadoReactor)