mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-12-24 11:42:52 +01:00
src/commands.py: make subprocesses raise an error on timeout, rather than return a string
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
This commit is contained in:
parent
f310350335
commit
6a9af819a3
@ -61,6 +61,10 @@ def thread(f):
|
|||||||
f(self, irc, msg, args, *L, **kwargs)
|
f(self, irc, msg, args, *L, **kwargs)
|
||||||
return utils.python.changeFunctionName(newf, f.func_name, f.__doc__)
|
return utils.python.changeFunctionName(newf, f.func_name, f.__doc__)
|
||||||
|
|
||||||
|
class ProcessTimeoutError(Exception):
|
||||||
|
"""Gets raised when a process is killed due to timeout."""
|
||||||
|
pass
|
||||||
|
|
||||||
def process(f, *args, **kwargs):
|
def process(f, *args, **kwargs):
|
||||||
"""Runs a function <f> in a subprocess.
|
"""Runs a function <f> in a subprocess.
|
||||||
|
|
||||||
@ -85,7 +89,7 @@ def process(f, *args, **kwargs):
|
|||||||
p.join(timeout)
|
p.join(timeout)
|
||||||
if p.is_alive():
|
if p.is_alive():
|
||||||
p.terminate()
|
p.terminate()
|
||||||
return "%s aborted due to timeout." % (p.name,)
|
raise ProcessTimeoutError, "%s aborted due to timeout." % (p.name,)
|
||||||
try:
|
try:
|
||||||
v = q.get(block=False)
|
v = q.get(block=False)
|
||||||
except Queue.Empty:
|
except Queue.Empty:
|
||||||
|
Loading…
Reference in New Issue
Block a user