diff options
author | Bert JW Regeer <bertjw@regeer.org> | 2016-06-02 16:47:56 -0600 |
---|---|---|
committer | Bert JW Regeer <bertjw@regeer.org> | 2016-06-03 14:12:15 -0600 |
commit | 211e68d350460c76fc1058cee2782ba6beaaf1e6 (patch) | |
tree | 67164f7451c79d5db9e8d2b48b293912d2c9075e | |
parent | 7fea76b22440949c9259ce8066d00b7cf109661c (diff) | |
download | waitress-211e68d350460c76fc1058cee2782ba6beaaf1e6.tar.gz |
BaseServer is introduced for run()
When we have multiple listen sockets, we end up in situation where we
need to return something from create_server() that .run() can be called
on. This is what the BaseServer is for, it starts the IO loop and
watches for signals.
-rw-r--r-- | waitress/server.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/waitress/server.py b/waitress/server.py index a32d1db..e18b419 100644 --- a/waitress/server.py +++ b/waitress/server.py @@ -59,6 +59,29 @@ def create_server(application, adj=adj, sockinfo=sockinfo) +class BaseServer(object): + + asyncore = asyncore # test shim + + def __init__(self, + map=None, + adj=None, + effective_listen=None, + ): + self.adj = adj + self.map = map + self.effective_listen = None + + def run(self): + try: + self.asyncore.loop( + timeout=self.adj.asyncore_loop_timeout, + map=self.map, + use_poll=self.adj.asyncore_use_poll, + ) + except (SystemExit, KeyboardInterrupt): + self.task_dispatcher.shutdown() + class BaseWSGIServer(logging_dispatcher, object): |