summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBert JW Regeer <bertjw@regeer.org>2016-06-02 16:47:56 -0600
committerBert JW Regeer <bertjw@regeer.org>2016-06-03 14:12:15 -0600
commit211e68d350460c76fc1058cee2782ba6beaaf1e6 (patch)
tree67164f7451c79d5db9e8d2b48b293912d2c9075e
parent7fea76b22440949c9259ce8066d00b7cf109661c (diff)
downloadwaitress-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.py23
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):