From cb33e09d1bedce2aa17d02fc7c8047b4a2753f40 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 10 Jan 2013 17:33:14 +0100 Subject: [PATCH] Socket is inited by master process bzr revid: nicolas.vanhoren@openerp.com-20130110163314-449euw1z69eebtpz --- openerp/service/workers.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/openerp/service/workers.py b/openerp/service/workers.py index 9043eac1bcd..aee639035a6 100644 --- a/openerp/service/workers.py +++ b/openerp/service/workers.py @@ -181,6 +181,12 @@ class Multicorn(object): self.socket.setblocking(0) self.socket.bind(self.address) self.socket.listen(8) + # long polling socket + self.long_polling_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + self.long_polling_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + self.long_polling_socket.setblocking(0) + self.long_polling_socket.bind(('0.0.0.0', 8072)) + self.long_polling_socket.listen(8) def stop(self, graceful=True): if graceful: @@ -349,8 +355,8 @@ class WorkerLongPolling(Worker): Worker.start(self) from gevent.wsgi import WSGIServer - httpd = WSGIServer(('0.0.0.0', 8072), self.multi.app) - httpd.serve_forever() + self.server = WSGIServer(self.multi.long_polling_socket, self.multi.app) + self.server.serve_forever() class WorkerBaseWSGIServer(werkzeug.serving.BaseWSGIServer): """ werkzeug WSGI Server patched to allow using an external listen socket