60 lines
4.6 KiB
HTML
60 lines
4.6 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
<html><head><title>Python: module func_timeout.dafunc</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
</head><body bgcolor="#f0f0f8">
|
|
|
|
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
|
|
<tr bgcolor="#7799ee">
|
|
<td valign=bottom> <br>
|
|
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="func_timeout.html"><font color="#ffffff">func_timeout</font></a>.dafunc</strong></big></big></font></td
|
|
><td align=right valign=bottom
|
|
><font color="#ffffff" face="helvetica, arial"><a href="func_timeout.html">index</a></font></td></tr></table>
|
|
<p><tt>Copyright (c) 2016 Tim Savannah All Rights Reserved.<br>
|
|
<br>
|
|
Licensed under the Lesser GNU Public License Version 3, LGPLv3. You should have recieved a copy of this with the source distribution as<br>
|
|
LICENSE, otherwise it is available at https://github.com/kata198/func_timeout/LICENSE</tt></p>
|
|
<p>
|
|
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
|
|
<tr bgcolor="#aa55cc">
|
|
<td colspan=3 valign=bottom> <br>
|
|
<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
|
|
|
|
<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
|
|
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="threading.html">threading</a><br>
|
|
</td><td width="25%" valign=top><a href="time.html">time</a><br>
|
|
</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
|
|
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
|
|
<tr bgcolor="#eeaa77">
|
|
<td colspan=3 valign=bottom> <br>
|
|
<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
|
|
|
|
<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
|
|
<td width="100%"><dl><dt><a name="-func_timeout"><strong>func_timeout</strong></a>(timeout, func, args=(), kwargs=None)</dt><dd><tt>func_timeout - Runs the given function for up to #timeout# seconds.<br>
|
|
<br>
|
|
Raises any exceptions #func# would raise, returns what #func# would return (unless timeout is exceeded), in which case it raises FunctionTimedOut<br>
|
|
<br>
|
|
@param timeout <float> - Maximum number of seconds to run #func# before terminating<br>
|
|
@param func <function> - The function to call<br>
|
|
@param args <tuple> - Any ordered arguments to pass to the function<br>
|
|
@param kwargs <dict/None> - Keyword arguments to pass to the function.<br>
|
|
<br>
|
|
@raises - FunctionTimedOut if #timeout# is exceeded, otherwise anything #func# could raise will be raised<br>
|
|
<br>
|
|
If the timeout is exceeded, FunctionTimedOut will be raised within the context of the called function every two seconds until it terminates,<br>
|
|
but will not block the calling thread (a new thread will be created to perform the join). If possible, you should try/except FunctionTimedOut<br>
|
|
to return cleanly, but in most cases it will 'just work'.<br>
|
|
<br>
|
|
Be careful of code like:<br>
|
|
def myfunc():<br>
|
|
while True:<br>
|
|
try:<br>
|
|
dosomething()<br>
|
|
except Exception:<br>
|
|
continue<br>
|
|
<br>
|
|
because it will never terminate.<br>
|
|
<br>
|
|
@return - The return value that #func# gives</tt></dd></dl>
|
|
</td></tr></table>
|
|
</body></html>
|