diff options
author | Marek Siarkowicz <mareksiarkowicz@gmail.com> | 2015-06-15 12:55:18 +0200 |
---|---|---|
committer | Marek Siarkowicz <mareksiarkowicz@gmail.com> | 2015-06-15 12:55:52 +0200 |
commit | 65f9c06e00c78c382451458ea1d8a9dad1016fb0 (patch) | |
tree | 0f59941eac2c930cf3b37d525b04a05220249075 /parrot_zik/utils.py | |
parent | 8c724233f95dec5a871bb1eb39da621902d3fcd1 (diff) | |
download | pyParrotZikTCP-65f9c06e00c78c382451458ea1d8a9dad1016fb0.tar.xz pyParrotZikTCP-65f9c06e00c78c382451458ea1d8a9dad1016fb0.zip |
Refactor. Move
Diffstat (limited to '')
-rw-r--r-- | parrot_zik/utils.py | 31 |
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() + |