From a9f81cb40ff4645950b4d184cd198f7abbcd97ad Mon Sep 17 00:00:00 2001 From: Fabian Gundlach <320pointsguy@googlemail.com> Date: Thu, 16 Aug 2018 17:45:14 +0200 Subject: [PATCH] Use tornado's AnyThreadEventLoopPolicy Since tornado 5.0 (with python 3), event loops by default have to be created explicitly in each new thread. This commit reinstates the old behavior in AWS and CWS. http://www.tornadoweb.org/en/stable/asyncio.html#tornado.platform.asyncio.AnyThreadEventLoopPolicy --- scripts/cmsAdminWebServer | 6 ++++++ scripts/cmsContestWebServer | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/scripts/cmsAdminWebServer b/scripts/cmsAdminWebServer index 7632971040..2b74443163 100755 --- a/scripts/cmsAdminWebServer +++ b/scripts/cmsAdminWebServer @@ -32,6 +32,7 @@ gevent.monkey.patch_all() import logging import sys +import tornado from cms import ConfigError, default_argument_parser from cms.db import test_db_connection @@ -45,6 +46,11 @@ def main(): """Parse arguments and launch service. """ + if tornado.version_info >= (5, 0): + import asyncio + from tornado.platform.asyncio import AnyThreadEventLoopPolicy + asyncio.set_event_loop_policy(AnyThreadEventLoopPolicy()) + test_db_connection() success = default_argument_parser("Admins' web server for CMS.", AdminWebServer).run() diff --git a/scripts/cmsContestWebServer b/scripts/cmsContestWebServer index 9ae13b9ea7..4e36186184 100755 --- a/scripts/cmsContestWebServer +++ b/scripts/cmsContestWebServer @@ -32,6 +32,7 @@ gevent.monkey.patch_all() import logging import sys +import tornado from cms import ConfigError, default_argument_parser from cms.db import ask_for_contest, test_db_connection @@ -45,6 +46,11 @@ def main(): """Parse arguments and launch service. """ + if tornado.version_info >= (5, 0): + import asyncio + from tornado.platform.asyncio import AnyThreadEventLoopPolicy + asyncio.set_event_loop_policy(AnyThreadEventLoopPolicy()) + test_db_connection() success = default_argument_parser("Contestants' web server for CMS.", ContestWebServer,