aboutsummaryrefslogtreecommitdiff
path: root/parrot_zik/utils.py
diff options
context:
space:
mode:
authorMarek Siarkowicz <mareksiarkowicz@gmail.com>2015-06-15 12:55:18 +0200
committerMarek Siarkowicz <mareksiarkowicz@gmail.com>2015-06-15 12:55:52 +0200
commit65f9c06e00c78c382451458ea1d8a9dad1016fb0 (patch)
tree0f59941eac2c930cf3b37d525b04a05220249075 /parrot_zik/utils.py
parent8c724233f95dec5a871bb1eb39da621902d3fcd1 (diff)
downloadpyParrotZikTCP-65f9c06e00c78c382451458ea1d8a9dad1016fb0.tar.xz
pyParrotZikTCP-65f9c06e00c78c382451458ea1d8a9dad1016fb0.zip
Refactor. Move
Diffstat (limited to 'parrot_zik/utils.py')
-rw-r--r--parrot_zik/utils.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/parrot_zik/utils.py b/parrot_zik/utils.py
new file mode 100644
index 0000000..18b878d
--- /dev/null
+++ b/parrot_zik/utils.py
@@ -0,0 +1,31 @@
+from threading import Lock
+
+import gtk
+
+
+class repeat(object):
+ def __init__(self, f):
+ self.f = f
+ self.id = None
+ self.lock = Lock()
+
+ def __call__(self, cls):
+ self.f(cls)
+
+ def start(self, cls, frequency):
+ self.lock.acquire()
+ if not self.id:
+ def run():
+ self.f(cls)
+ return True
+
+ self.id = gtk.timeout_add(frequency, run)
+ self.lock.release()
+
+ def stop(self):
+ self.lock.acquire()
+ if self.id:
+ gtk.timeout_remove(self.id)
+ self.id = None
+ self.lock.release()
+