diff options
| author | herkulessi <git@herkulessi.de> | 2026-03-31 23:43:13 +0200 |
|---|---|---|
| committer | herkulessi <git@herkulessi.de> | 2026-03-31 23:43:13 +0200 |
| commit | 9023f3fce9765abdb8d70eeb4a1d5ee1aa2daaa7 (patch) | |
| tree | dbfd71095fdbc56e770786be247065aed9890e8c /fakegeld.py | |
Bezahlommat 2.0 initial commit oder so
Diffstat (limited to 'fakegeld.py')
| -rw-r--r-- | fakegeld.py | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/fakegeld.py b/fakegeld.py new file mode 100644 index 0000000..b0dae4f --- /dev/null +++ b/fakegeld.py @@ -0,0 +1,50 @@ +import threading +import os +import time + +TIMEOUT = 30 + +class MoneyTransaction: + def __init__(self, end_callback, add_money_callback) -> None: + self.end_callback = end_callback + self.add_money_callback = add_money_callback + self.lock = threading.Lock() + self.lock.acquire_lock(blocking=True) + self.timer = None + self.timer_lock = threading.Lock() + + def __end_callback(self, _ = None): + print("End Callback") + self.end_callback() + with self.timer_lock: + if self.timer is not None: + self.timer.cancel() + self.timer = None + self.lock.release_lock() + + def start(self): + print("Start Transaction") + with self.timer_lock: + self.timer = threading.Timer(TIMEOUT, self.__end_callback) # create Timeout + self.timer.start() + try: + os.mkfifo("/tmp/fakegeld") + except Exception as e: + print(e) + threading.Thread(target = self.__loop) + def __loop(self): + f = open("/tmp/money", "r") + while True: + time.sleep(0.1) + line = f.readline() + if line == "": continue + print("read '%s'" % line) + try: + amount = float(line) + print("got amount %s" % amount) + self.add_money_callback(amount) + except Exception as e: + print(e) + + def stop(self): + self.__end_callback() |
