diff --git a/openerp/__init__.py b/openerp/__init__.py index c9db7076e71..307170b9033 100644 --- a/openerp/__init__.py +++ b/openerp/__init__.py @@ -51,6 +51,8 @@ wsgi.register_wsgi_handler = wsgi.wsgi_server.register_wsgi_handler # its own copy of the data structure and we don't need to care about # locks between threads. multi_process = False +# Is the server running with gevent. +evented = False # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/openerp/cli/server.py b/openerp/cli/server.py index 0df13ffb3a7..84a818c0c5d 100644 --- a/openerp/cli/server.py +++ b/openerp/cli/server.py @@ -230,20 +230,10 @@ def main(args): check_root_user() openerp.tools.config.parse_config(args) - if openerp.tools.config.options["gevent"]: - _logger.info('Using gevent mode') - import gevent.monkey - gevent.monkey.patch_all() - import gevent_psycopg2 - gevent_psycopg2.monkey_patch() - check_postgres_user() openerp.netsvc.init_logger() report_configuration() - if openerp.tools.config.options["gevent"]: - _logger.info('Using gevent mode') - config = openerp.tools.config configure_babel_localedata_path() diff --git a/openerp/service/__init__.py b/openerp/service/__init__.py index dd8d4fe9152..dd654b4c8a2 100644 --- a/openerp/service/__init__.py +++ b/openerp/service/__init__.py @@ -34,6 +34,7 @@ import web_services import web_services import wsgi_server +import openerp import openerp.modules import openerp.netsvc import openerp.osv @@ -91,13 +92,13 @@ def start_services(): # Start the WSGI server. wsgi_server.start_service() # Start the main cron thread. - if not openerp.tools.config.options["gevent"]: + if not openerp.evented: cron.start_service() def stop_services(): """ Stop all services. """ # stop services - if not openerp.tools.config.options["gevent"]: + if not openerp.evented: cron.stop_service() netrpc_server.stop_service() wsgi_server.stop_service() diff --git a/openerp/service/workers.py b/openerp/service/workers.py index 7321978e859..3e8df86fede 100644 --- a/openerp/service/workers.py +++ b/openerp/service/workers.py @@ -354,7 +354,7 @@ class WorkerLongPolling(Worker): self.watchdog_timeout = None def start(self): - config.options["gevent"] = True + openerp.evented = True _logger.info('Using gevent mode') import gevent.monkey gevent.monkey.patch_all() diff --git a/openerp/service/wsgi_server.py b/openerp/service/wsgi_server.py index 010a8cde957..196b3f5db7d 100644 --- a/openerp/service/wsgi_server.py +++ b/openerp/service/wsgi_server.py @@ -424,7 +424,7 @@ def serve(): # TODO Change the xmlrpc_* options to http_* interface = config['xmlrpc_interface'] or '0.0.0.0' port = config['xmlrpc_port'] - if not openerp.tools.config.options["gevent"]: + if not openerp.evented: httpd = werkzeug.serving.make_server(interface, port, application, threaded=True) else: from gevent.wsgi import WSGIServer diff --git a/openerp/tools/config.py b/openerp/tools/config.py index dcbf26783e3..c4b52c10b31 100644 --- a/openerp/tools/config.py +++ b/openerp/tools/config.py @@ -108,7 +108,6 @@ class configmanager(object): help="specify additional addons paths (separated by commas).", action="callback", callback=self._check_addons_path, nargs=1, type="string") group.add_option("--load", dest="server_wide_modules", help="Comma-separated list of server-wide modules default=web") - group.add_option("--gevent", dest="gevent", action="store_true", my_default=False, help="Activate the GEvent mode, this also desactivate the cron.") parser.add_option_group(group) # XML-RPC / HTTP @@ -412,7 +411,7 @@ class configmanager(object): 'list_db', 'xmlrpcs', 'proxy_mode', 'test_file', 'test_enable', 'test_commit', 'test_report_directory', 'osv_memory_count_limit', 'osv_memory_age_limit', 'max_cron_threads', 'unaccent', - 'workers', 'limit_memory_hard', 'limit_memory_soft', 'limit_time_cpu', 'limit_time_real', 'limit_request', 'gevent' + 'workers', 'limit_memory_hard', 'limit_memory_soft', 'limit_time_cpu', 'limit_time_real', 'limit_request', ] for arg in keys: