def stop(self, done=None, wait=True): # print(f"Stopping pool") for event in self.events: event.set() if wait: for worker in self.workers: worker.join() cast(done, "set")
def stop(self, done=None): # print("Stopping client!") self.kill_switch.set() event = dict() event["name"] = "closing" event["data"] = dict() event["data"]["when"] = utc_now_timestamp() self._send_event(event) self.running = False self.sock.close() self.stopped.set() cast(done, "set")
def stop(self, wait=True): # print("[manager] Stopping") if self.monitor_interval > 0: self.monitor.event.set() with self._manager: dones = list() threads = list() for pool in self.pools: done = Event() dones.append(done) thread = Thread(target=pool.stop, args=(done, wait)) thread.setDaemon(True) threads.append(thread) thread.start() if wait: for thread in threads: thread.join(self.timeout) self._load_presets() cast(self.stopped, "set")
def _exec_controls(self, controls): for action, methods in controls.items(): for method in methods: cast(method, action)
def _cleaner(self, idle_pools, done=None): print("[manager] Cleaning pools") for pool in idle_pools: self._stop_pool(pool, wait=done is not None) print("[manager] Pools are cleaned") cast(done, "set")
def _process_trigger(self, unit, previous, value): now = cast(Cron, f"get_{unit}", utc_now()) if value == "change" and previous is not None: return cast(Cron, f"get_{unit}", previous) != now else: return now == value