blob: 9aeb7314de9e8c6a6bab603db00bb9ab15ab17a4 [file] [log] [blame]
Scott Baker1b3b37b2017-02-21 22:53:33 -08001import os
2import inspect
3import imp
4import sys
5import threading
6import time
7from syncstep import SyncStep
8from synchronizers.new_base.event_loop import XOSObserver
9from xos.logger import Logger, logging
10from xos.config import Config
11
12watchers_enabled = getattr(Config(), "observer_enable_watchers", None)
13
14if (watchers_enabled):
15 from synchronizers.new_base.watchers import XOSWatcher
16
17logger = Logger(level=logging.INFO)
18
19class Backend:
20 def run(self):
21 # start model policies thread
22 policies_dir = getattr(Config(), "observer_model_policies_dir", None)
23 if policies_dir:
24 from synchronizers.model_policy import run_policy
25 model_policy_thread = threading.Thread(target=run_policy)
26 model_policy_thread.start()
27 else:
28 model_policy_thread = None
29 logger.info("Skipping model policies thread due to no model_policies dir.")
30
31 while True:
32 try:
33 time.sleep(1000)
34 except KeyboardInterrupt:
35 print "exiting due to keyboard interrupt"
36 if model_policy_thread:
37 model_policy_thread._Thread__stop()
38 sys.exit(1)
39