306 lines
23 KiB
HTML
306 lines
23 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
<html ><head ><title >Python: module func_timeout.StoppableThread</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>.StoppableThread</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, 2017 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="ctypes.html" >ctypes</a><br />
|
|
<a href="os.html" >os</a><br />
|
|
</td><td width="25%" valign="top" ><a href="sys.html" >sys</a><br />
|
|
<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></tr></table></td></tr></table><p >
|
|
<table width="100%" cellspacing="0" cellpadding="2" border="0" summary="section" >
|
|
<tr bgcolor="#ee77aa" >
|
|
<td colspan="3" valign="bottom" > <br />
|
|
<font color="#ffffff" face="helvetica, arial" ><big ><strong >Classes</strong></big></font></td></tr>
|
|
|
|
<tr ><td bgcolor="#ee77aa" ><tt > </tt></td><td > </td>
|
|
<td width="100%" ><dl >
|
|
<dt ><font face="helvetica, arial" ><a href="threading.html#Thread" >threading.Thread</a>(<a href="builtins.html#object" >builtins.object</a>)
|
|
</font></dt><dd >
|
|
<dl >
|
|
<dt ><font face="helvetica, arial" ><a href="func_timeout.StoppableThread.html#JoinThread" >JoinThread</a>
|
|
</font></dt><dt ><font face="helvetica, arial" ><a href="func_timeout.StoppableThread.html#StoppableThread" >StoppableThread</a>
|
|
</font></dt></dl>
|
|
</dd>
|
|
</dl>
|
|
<p >
|
|
<table width="100%" cellspacing="0" cellpadding="2" border="0" summary="section" >
|
|
<tr bgcolor="#ffc8d8" >
|
|
<td colspan="3" valign="bottom" > <br />
|
|
<font color="#000000" face="helvetica, arial" ><a name="JoinThread" >class <strong >JoinThread</strong></a>(<a href="threading.html#Thread" >threading.Thread</a>)</font></td></tr>
|
|
|
|
<tr bgcolor="#ffc8d8" ><td rowspan="2" ><tt > </tt></td>
|
|
<td colspan="2" ><tt ><a href="#JoinThread" >JoinThread</a> - The workhouse that stops the <a href="#StoppableThread" >StoppableThread</a><br /> </tt></td></tr>
|
|
<tr ><td > </td>
|
|
<td width="100%" ><dl ><dt >Method resolution order:</dt>
|
|
<dd ><a href="func_timeout.StoppableThread.html#JoinThread" >JoinThread</a></dd>
|
|
<dd ><a href="threading.html#Thread" >threading.Thread</a></dd>
|
|
<dd ><a href="builtins.html#object" >builtins.object</a></dd>
|
|
</dl>
|
|
<hr />
|
|
Methods defined here:<br />
|
|
<dl ><dt ><a name="JoinThread-__init__" ><strong >__init__</strong></a>(self, otherThread, exception, repeatEvery=2.0)</dt><dd ><tt >This constructor should always be called with keyword arguments. Arguments are:<br />
|
|
<br />
|
|
*group* should be None; reserved for future extension when a ThreadGroup<br />
|
|
class is implemented.<br />
|
|
<br />
|
|
*target* is the callable object to be invoked by the <a href="#JoinThread-run" >run</a>()<br />
|
|
method. Defaults to None, meaning nothing is called.<br />
|
|
<br />
|
|
*name* is the thread name. By default, a unique name is constructed of<br />
|
|
the form "<a href="threading.html#Thread" >Thread</a>-N" where N is a small decimal number.<br />
|
|
<br />
|
|
*args* is the argument tuple for the target invocation. Defaults to ().<br />
|
|
<br />
|
|
*kwargs* is a dictionary of keyword arguments for the target<br />
|
|
invocation. Defaults to {}.<br />
|
|
<br />
|
|
If a subclass overrides the constructor, it must make sure to invoke<br />
|
|
the base class constructor (<a href="threading.html#Thread" >Thread</a>.<a href="#JoinThread-__init__" >__init__</a>()) before doing anything<br />
|
|
else to the thread.</tt></dd></dl>
|
|
|
|
<dl ><dt ><a name="JoinThread-run" ><strong >run</strong></a>(self)</dt><dd ><tt >Method representing the thread's activity.<br />
|
|
<br />
|
|
You may override this method in a subclass. The standard <a href="#JoinThread-run" >run</a>() method<br />
|
|
invokes the callable object passed to the object's constructor as the<br />
|
|
target argument, if any, with sequential and keyword arguments taken<br />
|
|
from the args and kwargs arguments, respectively.</tt></dd></dl>
|
|
|
|
<hr />
|
|
Methods inherited from <a href="threading.html#Thread" >threading.Thread</a>:<br />
|
|
<dl ><dt ><a name="JoinThread-__repr__" ><strong >__repr__</strong></a>(self)</dt><dd ><tt >Return repr(self).</tt></dd></dl>
|
|
|
|
<dl ><dt ><a name="JoinThread-getName" ><strong >getName</strong></a>(self)</dt></dl>
|
|
|
|
<dl ><dt ><a name="JoinThread-isAlive" ><strong >isAlive</strong></a> = is_alive(self)</dt><dd ><tt >Return whether the thread is alive.<br />
|
|
<br />
|
|
This method returns True just before the <a href="#JoinThread-run" >run</a>() method starts until just<br />
|
|
after the <a href="#JoinThread-run" >run</a>() method terminates. The module function enumerate()<br />
|
|
returns a list of all alive threads.</tt></dd></dl>
|
|
|
|
<dl ><dt ><a name="JoinThread-isDaemon" ><strong >isDaemon</strong></a>(self)</dt></dl>
|
|
|
|
<dl ><dt ><a name="JoinThread-is_alive" ><strong >is_alive</strong></a>(self)</dt><dd ><tt >Return whether the thread is alive.<br />
|
|
<br />
|
|
This method returns True just before the <a href="#JoinThread-run" >run</a>() method starts until just<br />
|
|
after the <a href="#JoinThread-run" >run</a>() method terminates. The module function enumerate()<br />
|
|
returns a list of all alive threads.</tt></dd></dl>
|
|
|
|
<dl ><dt ><a name="JoinThread-join" ><strong >join</strong></a>(self, timeout=None)</dt><dd ><tt >Wait until the thread terminates.<br />
|
|
<br />
|
|
This blocks the calling thread until the thread whose <a href="#JoinThread-join" >join</a>() method is<br />
|
|
called terminates -- either normally or through an unhandled exception<br />
|
|
or until the optional timeout occurs.<br />
|
|
<br />
|
|
When the timeout argument is present and not None, it should be a<br />
|
|
floating point number specifying a timeout for the operation in seconds<br />
|
|
(or fractions thereof). As <a href="#JoinThread-join" >join</a>() always returns None, you must call<br />
|
|
<a href="#JoinThread-isAlive" >isAlive</a>() after <a href="#JoinThread-join" >join</a>() to decide whether a timeout happened -- if the<br />
|
|
thread is still alive, the <a href="#JoinThread-join" >join</a>() call timed out.<br />
|
|
<br />
|
|
When the timeout argument is not present or None, the operation will<br />
|
|
block until the thread terminates.<br />
|
|
<br />
|
|
A thread can be <a href="#JoinThread-join" >join</a>()ed many times.<br />
|
|
<br />
|
|
<a href="#JoinThread-join" >join</a>() raises a RuntimeError if an attempt is made to join the current<br />
|
|
thread as that would cause a deadlock. It is also an error to <a href="#JoinThread-join" >join</a>() a<br />
|
|
thread before it has been started and attempts to do so raises the same<br />
|
|
exception.</tt></dd></dl>
|
|
|
|
<dl ><dt ><a name="JoinThread-setDaemon" ><strong >setDaemon</strong></a>(self, daemonic)</dt></dl>
|
|
|
|
<dl ><dt ><a name="JoinThread-setName" ><strong >setName</strong></a>(self, name)</dt></dl>
|
|
|
|
<dl ><dt ><a name="JoinThread-start" ><strong >start</strong></a>(self)</dt><dd ><tt >Start the thread's activity.<br />
|
|
<br />
|
|
It must be called at most once per thread object. It arranges for the<br />
|
|
object's <a href="#JoinThread-run" >run</a>() method to be invoked in a separate thread of control.<br />
|
|
<br />
|
|
This method will raise a RuntimeError if called more than once on the<br />
|
|
same thread object.</tt></dd></dl>
|
|
|
|
<hr />
|
|
Data descriptors inherited from <a href="threading.html#Thread" >threading.Thread</a>:<br />
|
|
<dl ><dt ><strong >__dict__</strong></dt>
|
|
<dd ><tt >dictionary for instance variables (if defined)</tt></dd>
|
|
</dl>
|
|
<dl ><dt ><strong >__weakref__</strong></dt>
|
|
<dd ><tt >list of weak references to the object (if defined)</tt></dd>
|
|
</dl>
|
|
<dl ><dt ><strong >daemon</strong></dt>
|
|
<dd ><tt >A boolean value indicating whether this thread is a daemon thread.<br />
|
|
<br />
|
|
This must be set before start() is called, otherwise RuntimeError is<br />
|
|
raised. Its initial value is inherited from the creating thread; the<br />
|
|
main thread is not a daemon thread and therefore all threads created in<br />
|
|
the main thread default to daemon = False.<br />
|
|
<br />
|
|
The entire Python program exits when no alive non-daemon threads are<br />
|
|
left.</tt></dd>
|
|
</dl>
|
|
<dl ><dt ><strong >ident</strong></dt>
|
|
<dd ><tt >Thread identifier of this thread or None if it has not been started.<br />
|
|
<br />
|
|
This is a nonzero integer. See the thread.get_ident() function. Thread<br />
|
|
identifiers may be recycled when a thread exits and another thread is<br />
|
|
created. The identifier is available even after the thread has exited.</tt></dd>
|
|
</dl>
|
|
<dl ><dt ><strong >name</strong></dt>
|
|
<dd ><tt >A string used for identification purposes only.<br />
|
|
<br />
|
|
It has no semantics. Multiple threads may be given the same name. The<br />
|
|
initial name is set by the constructor.</tt></dd>
|
|
</dl>
|
|
</td></tr></table> <p >
|
|
<table width="100%" cellspacing="0" cellpadding="2" border="0" summary="section" >
|
|
<tr bgcolor="#ffc8d8" >
|
|
<td colspan="3" valign="bottom" > <br />
|
|
<font color="#000000" face="helvetica, arial" ><a name="StoppableThread" >class <strong >StoppableThread</strong></a>(<a href="threading.html#Thread" >threading.Thread</a>)</font></td></tr>
|
|
|
|
<tr bgcolor="#ffc8d8" ><td rowspan="2" ><tt > </tt></td>
|
|
<td colspan="2" ><tt ><a href="#StoppableThread" >StoppableThread</a> - A thread that can be stopped by forcing an exception in the execution context.<br /> </tt></td></tr>
|
|
<tr ><td > </td>
|
|
<td width="100%" ><dl ><dt >Method resolution order:</dt>
|
|
<dd ><a href="func_timeout.StoppableThread.html#StoppableThread" >StoppableThread</a></dd>
|
|
<dd ><a href="threading.html#Thread" >threading.Thread</a></dd>
|
|
<dd ><a href="builtins.html#object" >builtins.object</a></dd>
|
|
</dl>
|
|
<hr />
|
|
Methods inherited from <a href="threading.html#Thread" >threading.Thread</a>:<br />
|
|
<dl ><dt ><a name="StoppableThread-__init__" ><strong >__init__</strong></a>(self, group=None, target=None, name=None, args=(), kwargs=None, *, daemon=None)</dt><dd ><tt >This constructor should always be called with keyword arguments. Arguments are:<br />
|
|
<br />
|
|
*group* should be None; reserved for future extension when a ThreadGroup<br />
|
|
class is implemented.<br />
|
|
<br />
|
|
*target* is the callable object to be invoked by the <a href="#StoppableThread-run" >run</a>()<br />
|
|
method. Defaults to None, meaning nothing is called.<br />
|
|
<br />
|
|
*name* is the thread name. By default, a unique name is constructed of<br />
|
|
the form "<a href="threading.html#Thread" >Thread</a>-N" where N is a small decimal number.<br />
|
|
<br />
|
|
*args* is the argument tuple for the target invocation. Defaults to ().<br />
|
|
<br />
|
|
*kwargs* is a dictionary of keyword arguments for the target<br />
|
|
invocation. Defaults to {}.<br />
|
|
<br />
|
|
If a subclass overrides the constructor, it must make sure to invoke<br />
|
|
the base class constructor (<a href="threading.html#Thread" >Thread</a>.<a href="#StoppableThread-__init__" >__init__</a>()) before doing anything<br />
|
|
else to the thread.</tt></dd></dl>
|
|
|
|
<dl ><dt ><a name="StoppableThread-__repr__" ><strong >__repr__</strong></a>(self)</dt><dd ><tt >Return repr(self).</tt></dd></dl>
|
|
|
|
<dl ><dt ><a name="StoppableThread-getName" ><strong >getName</strong></a>(self)</dt></dl>
|
|
|
|
<dl ><dt ><a name="StoppableThread-isAlive" ><strong >isAlive</strong></a> = is_alive(self)</dt><dd ><tt >Return whether the thread is alive.<br />
|
|
<br />
|
|
This method returns True just before the <a href="#StoppableThread-run" >run</a>() method starts until just<br />
|
|
after the <a href="#StoppableThread-run" >run</a>() method terminates. The module function enumerate()<br />
|
|
returns a list of all alive threads.</tt></dd></dl>
|
|
|
|
<dl ><dt ><a name="StoppableThread-isDaemon" ><strong >isDaemon</strong></a>(self)</dt></dl>
|
|
|
|
<dl ><dt ><a name="StoppableThread-is_alive" ><strong >is_alive</strong></a>(self)</dt><dd ><tt >Return whether the thread is alive.<br />
|
|
<br />
|
|
This method returns True just before the <a href="#StoppableThread-run" >run</a>() method starts until just<br />
|
|
after the <a href="#StoppableThread-run" >run</a>() method terminates. The module function enumerate()<br />
|
|
returns a list of all alive threads.</tt></dd></dl>
|
|
|
|
<dl ><dt ><a name="StoppableThread-join" ><strong >join</strong></a>(self, timeout=None)</dt><dd ><tt >Wait until the thread terminates.<br />
|
|
<br />
|
|
This blocks the calling thread until the thread whose <a href="#StoppableThread-join" >join</a>() method is<br />
|
|
called terminates -- either normally or through an unhandled exception<br />
|
|
or until the optional timeout occurs.<br />
|
|
<br />
|
|
When the timeout argument is present and not None, it should be a<br />
|
|
floating point number specifying a timeout for the operation in seconds<br />
|
|
(or fractions thereof). As <a href="#StoppableThread-join" >join</a>() always returns None, you must call<br />
|
|
<a href="#StoppableThread-isAlive" >isAlive</a>() after <a href="#StoppableThread-join" >join</a>() to decide whether a timeout happened -- if the<br />
|
|
thread is still alive, the <a href="#StoppableThread-join" >join</a>() call timed out.<br />
|
|
<br />
|
|
When the timeout argument is not present or None, the operation will<br />
|
|
block until the thread terminates.<br />
|
|
<br />
|
|
A thread can be <a href="#StoppableThread-join" >join</a>()ed many times.<br />
|
|
<br />
|
|
<a href="#StoppableThread-join" >join</a>() raises a RuntimeError if an attempt is made to join the current<br />
|
|
thread as that would cause a deadlock. It is also an error to <a href="#StoppableThread-join" >join</a>() a<br />
|
|
thread before it has been started and attempts to do so raises the same<br />
|
|
exception.</tt></dd></dl>
|
|
|
|
<dl ><dt ><a name="StoppableThread-run" ><strong >run</strong></a>(self)</dt><dd ><tt >Method representing the thread's activity.<br />
|
|
<br />
|
|
You may override this method in a subclass. The standard <a href="#StoppableThread-run" >run</a>() method<br />
|
|
invokes the callable object passed to the object's constructor as the<br />
|
|
target argument, if any, with sequential and keyword arguments taken<br />
|
|
from the args and kwargs arguments, respectively.</tt></dd></dl>
|
|
|
|
<dl ><dt ><a name="StoppableThread-setDaemon" ><strong >setDaemon</strong></a>(self, daemonic)</dt></dl>
|
|
|
|
<dl ><dt ><a name="StoppableThread-setName" ><strong >setName</strong></a>(self, name)</dt></dl>
|
|
|
|
<dl ><dt ><a name="StoppableThread-start" ><strong >start</strong></a>(self)</dt><dd ><tt >Start the thread's activity.<br />
|
|
<br />
|
|
It must be called at most once per thread object. It arranges for the<br />
|
|
object's <a href="#StoppableThread-run" >run</a>() method to be invoked in a separate thread of control.<br />
|
|
<br />
|
|
This method will raise a RuntimeError if called more than once on the<br />
|
|
same thread object.</tt></dd></dl>
|
|
|
|
<hr />
|
|
Data descriptors inherited from <a href="threading.html#Thread" >threading.Thread</a>:<br />
|
|
<dl ><dt ><strong >__dict__</strong></dt>
|
|
<dd ><tt >dictionary for instance variables (if defined)</tt></dd>
|
|
</dl>
|
|
<dl ><dt ><strong >__weakref__</strong></dt>
|
|
<dd ><tt >list of weak references to the object (if defined)</tt></dd>
|
|
</dl>
|
|
<dl ><dt ><strong >daemon</strong></dt>
|
|
<dd ><tt >A boolean value indicating whether this thread is a daemon thread.<br />
|
|
<br />
|
|
This must be set before start() is called, otherwise RuntimeError is<br />
|
|
raised. Its initial value is inherited from the creating thread; the<br />
|
|
main thread is not a daemon thread and therefore all threads created in<br />
|
|
the main thread default to daemon = False.<br />
|
|
<br />
|
|
The entire Python program exits when no alive non-daemon threads are<br />
|
|
left.</tt></dd>
|
|
</dl>
|
|
<dl ><dt ><strong >ident</strong></dt>
|
|
<dd ><tt >Thread identifier of this thread or None if it has not been started.<br />
|
|
<br />
|
|
This is a nonzero integer. See the thread.get_ident() function. Thread<br />
|
|
identifiers may be recycled when a thread exits and another thread is<br />
|
|
created. The identifier is available even after the thread has exited.</tt></dd>
|
|
</dl>
|
|
<dl ><dt ><strong >name</strong></dt>
|
|
<dd ><tt >A string used for identification purposes only.<br />
|
|
<br />
|
|
It has no semantics. Multiple threads may be given the same name. The<br />
|
|
initial name is set by the constructor.</tt></dd>
|
|
</dl>
|
|
</td></tr></table></p></p></td></tr></table><p >
|
|
<table width="100%" cellspacing="0" cellpadding="2" border="0" summary="section" >
|
|
<tr bgcolor="#55aa55" >
|
|
<td colspan="3" valign="bottom" > <br />
|
|
<font color="#ffffff" face="helvetica, arial" ><big ><strong >Data</strong></big></font></td></tr>
|
|
|
|
<tr ><td bgcolor="#55aa55" ><tt > </tt></td><td > </td>
|
|
<td width="100%" ><strong >__all__</strong> = ('StoppableThread', 'JoinThread')</td></tr></table>
|
|
</p></p></p></body></html> |