X-Git-Url: https://git.ralfj.de/saartuer.git/blobdiff_plain/91c3451346afd2d5c1ae5b7600acc77b540c9e3b..98411bd460ad1474b8c3100bf8241c04519b7a2d:/libtuer.py diff --git a/libtuer.py b/libtuer.py index 835bf6d..c9eceec 100644 --- a/libtuer.py +++ b/libtuer.py @@ -5,7 +5,7 @@ import email.mime.text, email.utils # Logging configuration syslogLevel = logging.INFO mailLevel = logging.CRITICAL # must be "larger" than syslog level! -mailAddress = ['post+tuer'+'@'+'ralfj.de', 'vorstand@lists.hacksaar.de'] +from config import mailAddress printLevel = logging.DEBUG # Mail logging handler @@ -71,12 +71,13 @@ def fire_and_forget(f): # run a command asynchronously and log the return value if not 0 # prefix must be a string identifying the code position where the call came from -def fire_and_forget_cmd (cmd, log, prefix): +def fire_and_forget_cmd (cmd, log_prefix): + logger.debug("Firing and forgetting command from %s: %s" % (log_prefix,str(cmd))) def _fire_and_forget_cmd (): with open("/dev/null", "w") as fnull: retcode = subprocess.call(cmd, stdout=fnull, stderr=fnull) if retcode is not 0: - logger.error("%sReturn code %d at command: %s" % (prefix,retcode,str(cmd))) + logger.error("%sReturn code %d at command: %s" % (log_prefix,retcode,str(cmd))) fire_and_forget(_fire_and_forget_cmd) # Threaded callback class @@ -111,6 +112,13 @@ class ThreadFunction(): self._q.put((ThreadFunction._CALL, arg)) def stop(self): + # empty the queue + try: + while True: + self._q.get_nowait() + except queue.Empty: + pass + # now wait till the job-in-progress is done self._q.put((ThreadFunction._TERM, None)) self._t.join()