Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/olpcfr/_server.py
diff options
context:
space:
mode:
Diffstat (limited to 'olpcfr/_server.py')
-rw-r--r--olpcfr/_server.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/olpcfr/_server.py b/olpcfr/_server.py
new file mode 100644
index 0000000..8b79403
--- /dev/null
+++ b/olpcfr/_server.py
@@ -0,0 +1,26 @@
+# python import
+import atexit, multiprocessing
+
+# olpcfr import
+from olpcfr import config
+
+
+class Server(object):
+
+ def __init__(self):
+ from olpcfr.flask import app, run_app
+ if app:
+ # start the server
+ self._server = multiprocessing.Process(target=run_app)
+ self._server.start()
+ # .. required to close properly
+ atexit.register(self.close)
+ else:
+ # .. nothing to start
+ self._server = None
+
+ def close(self):
+ # stop web thread if started
+ if self._server:
+ self._server.terminate()
+ self._server.join()