From: Constantin Berhard Date: Wed, 9 Oct 2013 19:03:29 +0000 (+0200) Subject: thread instead of multiprocessing for fire_and_forget X-Git-Url: https://git.ralfj.de/saartuer.git/commitdiff_plain/19a7c2977daef47da6ad1bc0ca73010921f5122d?ds=sidebyside;hp=-c thread instead of multiprocessing for fire_and_forget --- 19a7c2977daef47da6ad1bc0ca73010921f5122d diff --git a/libtuer.py b/libtuer.py index e31ce27..5b1221c 100644 --- a/libtuer.py +++ b/libtuer.py @@ -1,4 +1,4 @@ -import logging, logging.handlers, os, time, queue, threading, subprocess, multiprocessing +import logging, logging.handlers, os, time, queue, threading, subprocess # logging function class Logger: @@ -31,13 +31,13 @@ logger = Logger() # 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, log, prefix): - def _fire_and_forget (cmd, log, prefix): + def _fire_and_forget (): with open("/dev/null", "w") as fnull: retcode = subprocess.call(cmd, stdout=fnull, stderr=fnull) if retcode is not 0: log("%sReturn code %d at command: %s" % (prefix,retcode,str(cmd))) - p = multiprocessing.Process(target=_fire_and_forget, args=(cmd,log,prefix)) - p.start() + t = threading.Thread(target=_fire_and_forget) + t.start() # Threaded callback class class ThreadFunction():