thread instead of multiprocessing for fire_and_forget
authorConstantin Berhard <constantin@exxxtremesys.lu>
Wed, 9 Oct 2013 19:03:29 +0000 (21:03 +0200)
committerConstantin Berhard <constantin@exxxtremesys.lu>
Wed, 9 Oct 2013 19:03:29 +0000 (21:03 +0200)
libtuer.py

index e31ce2728497f1c2dab8bfadad7d3b7a153ec41c..5b1221c173865efab6efa3ce1f55b32af891f2c8 100644 (file)
@@ -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():