From d6477c23e333507fe89a3ddd888eb7c78ca70c2b Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Thu, 2 May 2013 14:59:07 +0200 Subject: [PATCH] [FIX] long-polling: use start()/stop() instead of serve_forever(). This is done so detecting a possible PPID change works. (So that the worker dies when its parent dies.) bzr revid: vmt@openerp.com-20130502125907-2t96a26eo6c09x2f --- openerp/__init__.py | 2 +- openerp/service/workers.py | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/openerp/__init__.py b/openerp/__init__.py index 111677cd707..285c6af85d9 100644 --- a/openerp/__init__.py +++ b/openerp/__init__.py @@ -19,7 +19,7 @@ # ############################################################################## -""" OpenERP core library. +""" OpenERP core library.. """ diff --git a/openerp/service/workers.py b/openerp/service/workers.py index ecd5084b093..4106b69a632 100644 --- a/openerp/service/workers.py +++ b/openerp/service/workers.py @@ -373,7 +373,16 @@ class WorkerLongPolling(Worker): Worker.start(self) from gevent.wsgi import WSGIServer self.server = WSGIServer(self.multi.long_polling_socket, self.multi.app) - self.server.serve_forever() + self.server.start() + + def stop(self): + self.server.stop() + + def sleep(self): + time.sleep(1) + + def process_work(self): + pass class WorkerBaseWSGIServer(werkzeug.serving.BaseWSGIServer): """ werkzeug WSGI Server patched to allow using an external listen socket