From 1e1b85e95b307f6eb61c46ae9149bf96a46f9145 Mon Sep 17 00:00:00 2001
From: Antony Lesuisse <al@openerp.com>
Date: Sat, 22 Sep 2012 14:43:54 +0200
Subject: [PATCH] gevent first try

bzr revid: al@openerp.com-20120922124354-unk1u8a9anst5hwo
---
 openerp-server                 | 6 ++++++
 openerp/service/__init__.py    | 3 ++-
 openerp/service/wsgi_server.py | 5 ++++-
 3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/openerp-server b/openerp-server
index 9025e2d50c27..4d28a4cb7599 100755
--- a/openerp-server
+++ b/openerp-server
@@ -223,6 +223,12 @@ def main():
     check_root_user()
     openerp.tools.config.parse_config(sys.argv[1:])
 
+    # TODO GEVENT if event
+    import gevent.monkey
+    gevent.monkey.patch_all()
+    import gevent_psycopg2
+    gevent_psycopg2.monkey_patch()
+
     check_postgres_user()
     openerp.netsvc.init_logger()
     report_configuration()
diff --git a/openerp/service/__init__.py b/openerp/service/__init__.py
index 30a765b1f606..d3a571352841 100644
--- a/openerp/service/__init__.py
+++ b/openerp/service/__init__.py
@@ -86,7 +86,8 @@ def start_services():
     netrpc_server.init_servers()
 
     # Start the main cron thread.
-    openerp.cron.start_master_thread()
+    # TODO GEVENT if event use greenlet in cron
+    # openerp.cron.start_master_thread()
 
     # Start the top-level servers threads (normally HTTP, HTTPS, and NETRPC).
     openerp.netsvc.Server.startAll()
diff --git a/openerp/service/wsgi_server.py b/openerp/service/wsgi_server.py
index 61556974a00e..d15d423818bb 100644
--- a/openerp/service/wsgi_server.py
+++ b/openerp/service/wsgi_server.py
@@ -424,7 +424,10 @@ def serve():
     # TODO Change the xmlrpc_* options to http_*
     interface = config['xmlrpc_interface'] or '0.0.0.0'
     port = config['xmlrpc_port']
-    httpd = werkzeug.serving.make_server(interface, port, application, threaded=True)
+    #httpd = werkzeug.serving.make_server(interface, port, application, threaded=True)
+    # TODO  GEVENT if event
+    from gevent.wsgi import WSGIServer
+    httpd = WSGIServer((interface, port), application)
     _logger.info('HTTP service (werkzeug) running on %s:%s', interface, port)
     httpd.serve_forever()
 
-- 
GitLab