Fixes signal reaction times.

After messing around trying to make this more elegant we've decided to
just slap a 1s poll to the thing which seems to fix various bugs in the
async event handling.
This commit is contained in:
Paul J. Davis 2010-12-20 08:01:03 -05:00
parent 3ef8688fcc
commit 07f0c0f21d
2 changed files with 7 additions and 23 deletions

View File

@ -7,8 +7,6 @@ from __future__ import with_statement
import os
import time
try:
import eventlet
except ImportError:
@ -40,17 +38,13 @@ class EventletWorker(AsyncWorker):
self.acceptor = eventlet.spawn(eventlet.serve, self.socket,
self.handle, self.worker_connections)
t = time.time()
while self.alive:
if time.time() >= t:
self.notify()
t = time.time() + self.timeout
self.notify()
if self.ppid != os.getppid():
self.log.info("Parent changed, shutting down: %s" % self)
break
eventlet.sleep(0.1)
eventlet.sleep(1.0)
self.notify()
with eventlet.Timeout(self.timeout, False):

View File

@ -7,7 +7,6 @@ from __future__ import with_statement
import os
import sys
import time
# workaround on osx, disable kqueue
if sys.platform == "darwin":
@ -73,18 +72,14 @@ class GeventWorker(AsyncWorker):
worker=self)
server.start()
t = time.time()
try:
while self.alive:
if time.time() >= t:
self.notify()
t = time.time() + self.timeout
self.notify()
if self.ppid != os.getppid():
self.log.info("Parent changed, shutting down: %s" % self)
break
gevent.sleep(0.1)
gevent.sleep(1.0)
except KeyboardInterrupt:
pass
@ -138,20 +133,15 @@ class GeventBaseWorker(Worker):
server = self.server_class(self.socket, application=self.wsgi,
spawn=pool, handler_class=self.wsgi_handler)
server.start()
t = time.time()
try:
while self.alive:
if time.time() >= t:
self.notify()
t = time.time() + self.timeout
self.notify()
if self.ppid != os.getppid():
self.log.info("Parent changed, shutting down: %s" % self)
break
# sleep
gevent.sleep(0.1)
gevent.sleep(1.0)
except KeyboardInterrupt:
pass