folder reorganization
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user