This commit is contained in:
Alfa
2017-07-28 19:37:39 -04:00
parent 60e4685ce8
commit 3cc42f282f
1046 changed files with 162392 additions and 9 deletions
+44
View File
@@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-
from threading import Thread, Lock, Event
class Monitor(Thread):
def __init__(self, client):
Thread.__init__(self)
self.daemon = True
self.listeners = []
self.lock = Lock()
self.wait_event = Event()
self.running = True
self.client = client
self.ses = None
self.client = client
def stop(self):
self.running = False
self.wait_event.set()
def add_listener(self, cb):
with self.lock:
if not cb in self.listeners:
self.listeners.append(cb)
def remove_listener(self, cb):
with self.lock:
try:
self.listeners.remove(cb)
except ValueError:
pass
def remove_all_listeners(self):
with self.lock:
self.listeners = []
def run(self):
while (self.running):
with self.lock:
for cb in self.listeners:
cb()
self.wait_event.wait(1.0)