| | |
-
-- threading.Thread(builtins.object)
-
-
-
-- JoinThread
-
- StoppableThread
-
-
+| |
+func_timeout.StoppableThread(group=None, target=None, name=None, args=(), kwargs=None, *, daemon=None)
+
+StoppableThread - A thread that can be stopped by forcing an exception in the execution context.
+
+ This works both to interrupt code that is in C or in python code, at either the next call to a python function,
+ or the next line in python code.
+
+It is recommended that if you call stop ( @see StoppableThread.stop ) that you use an exception that inherits BaseException, to ensure it likely isn't caught.
+
+ Also, beware unmarked exception handlers in your code. Code like this:
+
+ while True:
+ try:
+ doSomething()
+ except:
+ continue
+
+will never be able to abort, because the exception you raise is immediately caught.
+
+The exception is raised over and over, with a specifed delay (default 2.0 seconds) |
+| |
+- Method resolution order:
+- StoppableThread
+- threading.Thread
+- builtins.object
-
-
-
-
-class JoinThread(threading.Thread) |
-
-| |
-JoinThread - The workhouse that stops the StoppableThread.
-
- Takes an exception, and upon being started immediately raises that exception in the current context
- of the thread's execution (so next line of python gets it, or next call to a python api function in C code ).
-
- @see StoppableThread for more details |
-| |
-- Method resolution order:
-- JoinThread
-- threading.Thread
-- builtins.object
-
-
-Methods defined here:
-- __init__(self, otherThread, exception, repeatEvery=2.0)
- __init__ - Create a JoinThread (don't forget to call .start() ! )
-
- @param otherThread <threading.Thread> - A thread
-
- @param exception <BaseException> - An exception. Should be a BaseException, to prevent "catch Exception as e: continue" type code
- from never being terminated. If such code is unavoidable, you can try setting #repeatEvery to a very low number, like .00001,
- and it will hopefully raise within the context of the catch, and be able to break free.
-
- @param repeatEvery <float> Default 2.0 - After starting, the given exception is immediately raised. Then, every #repeatEvery seconds,
- it is raised again, until the thread terminates.
+
+Methods defined here:
+- stop(self, exception, raiseEvery=2.0)
- Stops the thread by raising a given exception.
+
+@param exception <Exception type> - Exception to throw. Likely, you want to use something
+
+ that inherits from BaseException (so except Exception as e: continue; isn't a problem)
+
+ This should be a class/type, NOT an instance, i.e. MyExceptionType not MyExceptionType()
+
+
+@param raiseEvery <float> Default 2.0 - We will keep raising this exception every #raiseEvery seconds,
+
+ until the thread terminates.
+
+ If your code traps a specific exception type, this will allow you #raiseEvery seconds to cleanup before exit.
+
+ If you're calling third-party code you can't control, which catches BaseException, set this to a low number
+
+ to break out of their exception handler.
+
+
+ @return <None>
-- run(self)
- run - The thread main. Will attempt to stop and join the attached thread.
-
-
-Methods inherited from threading.Thread:
-- __repr__(self)
- Return repr(self).
-
-- getName(self)
-
-- isAlive = is_alive(self)
- Return whether the thread is alive.
-
-This method returns True just before the run() method starts until just
-after the run() method terminates. The module function enumerate()
-returns a list of all alive threads.
-
-- isDaemon(self)
-
-- is_alive(self)
- Return whether the thread is alive.
-
-This method returns True just before the run() method starts until just
-after the run() method terminates. The module function enumerate()
-returns a list of all alive threads.
-
-- join(self, timeout=None)
- Wait until the thread terminates.
-
-This blocks the calling thread until the thread whose join() method is
-called terminates -- either normally or through an unhandled exception
-or until the optional timeout occurs.
-
-When the timeout argument is present and not None, it should be a
-floating point number specifying a timeout for the operation in seconds
-(or fractions thereof). As join() always returns None, you must call
-isAlive() after join() to decide whether a timeout happened -- if the
-thread is still alive, the join() call timed out.
-
-When the timeout argument is not present or None, the operation will
-block until the thread terminates.
-
-A thread can be join()ed many times.
-
-join() raises a RuntimeError if an attempt is made to join the current
-thread as that would cause a deadlock. It is also an error to join() a
-thread before it has been started and attempts to do so raises the same
-exception.
-
-- setDaemon(self, daemonic)
-
-- setName(self, name)
-
-- start(self)
- Start the thread's activity.
-
-It must be called at most once per thread object. It arranges for the
-object's run() method to be invoked in a separate thread of control.
-
-This method will raise a RuntimeError if called more than once on the
-same thread object.
-
-
-Data descriptors inherited from threading.Thread:
-- __dict__
-- dictionary for instance variables (if defined)
-
-- __weakref__
-- list of weak references to the object (if defined)
-
-- daemon
-- A boolean value indicating whether this thread is a daemon thread.
-
-This must be set before start() is called, otherwise RuntimeError is
-raised. Its initial value is inherited from the creating thread; the
-main thread is not a daemon thread and therefore all threads created in
-the main thread default to daemon = False.
-
-The entire Python program exits when no alive non-daemon threads are
-left.
-
-- ident
-- Thread identifier of this thread or None if it has not been started.
-
-This is a nonzero integer. See the thread.get_ident() function. Thread
-identifiers may be recycled when a thread exits and another thread is
-created. The identifier is available even after the thread has exited.
-
-- name
-- A string used for identification purposes only.
-
-It has no semantics. Multiple threads may be given the same name. The
-initial name is set by the constructor.
-
- |
-
-
-
-class StoppableThread(threading.Thread) |
-
-| |
-StoppableThread - A thread that can be stopped by forcing an exception in the execution context.
-
- This works both to interrupt code that is in C or in python code, at either the next call to a python function,
- or the next line in python code.
-
-It is recommended that if you call stop ( @see StoppableThread.stop ) that you use an exception that inherits BaseException, to ensure it likely isn't caught.
-
- Also, beware unmarked exception handlers in your code. Code like this:
-
- while True:
- try:
- doSomething()
- except:
- continue
-
-will never be able to abort, because the exception you raise is immediately caught.
-
-The exception is raised over and over, with a specifed delay (default 2.0 seconds) |
-| |
-- Method resolution order:
-- StoppableThread
-- threading.Thread
-- builtins.object
-
-
-Methods defined here:
-- stop(self, exception, raiseEvery=2.0)
- Stops the thread by raising a given exception.
-
-@param exception <Exception> - Exception to throw. Likely, you want to use something
- that inherits from BaseException (so except Exception as e: continue; isn't a problem)
-
-
-Methods inherited from threading.Thread:
-- __init__(self, group=None, target=None, name=None, args=(), kwargs=None, *, daemon=None)
- This constructor should always be called with keyword arguments. Arguments are:
-
-*group* should be None; reserved for future extension when a ThreadGroup
-class is implemented.
-
-*target* is the callable object to be invoked by the run()
-method. Defaults to None, meaning nothing is called.
-
-*name* is the thread name. By default, a unique name is constructed of
-the form "Thread-N" where N is a small decimal number.
-
-*args* is the argument tuple for the target invocation. Defaults to ().
-
-*kwargs* is a dictionary of keyword arguments for the target
-invocation. Defaults to {}.
-
-If a subclass overrides the constructor, it must make sure to invoke
-the base class constructor (Thread.__init__()) before doing anything
+
+Methods inherited from threading.Thread:
+- __init__(self, group=None, target=None, name=None, args=(), kwargs=None, *, daemon=None)
- This constructor should always be called with keyword arguments. Arguments are:
+
+*group* should be None; reserved for future extension when a ThreadGroup
+class is implemented.
+
+*target* is the callable object to be invoked by the run()
+method. Defaults to None, meaning nothing is called.
+
+*name* is the thread name. By default, a unique name is constructed of
+the form "Thread-N" where N is a small decimal number.
+
+*args* is the argument tuple for the target invocation. Defaults to ().
+
+*kwargs* is a dictionary of keyword arguments for the target
+invocation. Defaults to {}.
+
+If a subclass overrides the constructor, it must make sure to invoke
+the base class constructor (Thread.__init__()) before doing anything
else to the thread.
-- __repr__(self)
- Return repr(self).
+- __repr__(self)
- Return repr(self).
-- getName(self)
+- getName(self)
-- isAlive = is_alive(self)
- Return whether the thread is alive.
-
-This method returns True just before the run() method starts until just
-after the run() method terminates. The module function enumerate()
+- isAlive(self)
- Return whether the thread is alive.
+
+This method is deprecated, use is_alive() instead.
+
+- isDaemon(self)
+
+- is_alive(self)
- Return whether the thread is alive.
+
+This method returns True just before the run() method starts until just
+after the run() method terminates. The module function enumerate()
returns a list of all alive threads.
-- isDaemon(self)
-
-- is_alive(self)
- Return whether the thread is alive.
-
-This method returns True just before the run() method starts until just
-after the run() method terminates. The module function enumerate()
-returns a list of all alive threads.
-
-- join(self, timeout=None)
- Wait until the thread terminates.
-
-This blocks the calling thread until the thread whose join() method is
-called terminates -- either normally or through an unhandled exception
-or until the optional timeout occurs.
-
-When the timeout argument is present and not None, it should be a
-floating point number specifying a timeout for the operation in seconds
-(or fractions thereof). As join() always returns None, you must call
-isAlive() after join() to decide whether a timeout happened -- if the
-thread is still alive, the join() call timed out.
-
-When the timeout argument is not present or None, the operation will
-block until the thread terminates.
-
-A thread can be join()ed many times.
-
-join() raises a RuntimeError if an attempt is made to join the current
-thread as that would cause a deadlock. It is also an error to join() a
-thread before it has been started and attempts to do so raises the same
+- join(self, timeout=None)
- Wait until the thread terminates.
+
+This blocks the calling thread until the thread whose join() method is
+called terminates -- either normally or through an unhandled exception
+or until the optional timeout occurs.
+
+When the timeout argument is present and not None, it should be a
+floating point number specifying a timeout for the operation in seconds
+(or fractions thereof). As join() always returns None, you must call
+is_alive() after join() to decide whether a timeout happened -- if the
+thread is still alive, the join() call timed out.
+
+When the timeout argument is not present or None, the operation will
+block until the thread terminates.
+
+A thread can be join()ed many times.
+
+join() raises a RuntimeError if an attempt is made to join the current
+thread as that would cause a deadlock. It is also an error to join() a
+thread before it has been started and attempts to do so raises the same
exception.
-- run(self)
- Method representing the thread's activity.
-
-You may override this method in a subclass. The standard run() method
-invokes the callable object passed to the object's constructor as the
-target argument, if any, with sequential and keyword arguments taken
+- run(self)
- Method representing the thread's activity.
+
+You may override this method in a subclass. The standard run() method
+invokes the callable object passed to the object's constructor as the
+target argument, if any, with sequential and keyword arguments taken
from the args and kwargs arguments, respectively.
-- setDaemon(self, daemonic)
+- setDaemon(self, daemonic)
-- setName(self, name)
+- setName(self, name)
-- start(self)
- Start the thread's activity.
-
-It must be called at most once per thread object. It arranges for the
-object's run() method to be invoked in a separate thread of control.
-
-This method will raise a RuntimeError if called more than once on the
+- start(self)
- Start the thread's activity.
+
+It must be called at most once per thread object. It arranges for the
+object's run() method to be invoked in a separate thread of control.
+
+This method will raise a RuntimeError if called more than once on the
same thread object.
-
-Data descriptors inherited from threading.Thread:
-- __dict__
-- dictionary for instance variables (if defined)
+
+Data descriptors inherited from threading.Thread:
+- __dict__
+- dictionary for instance variables (if defined)
-- __weakref__
-- list of weak references to the object (if defined)
+- __weakref__
+- list of weak references to the object (if defined)
-- daemon
-- A boolean value indicating whether this thread is a daemon thread.
-
-This must be set before start() is called, otherwise RuntimeError is
-raised. Its initial value is inherited from the creating thread; the
-main thread is not a daemon thread and therefore all threads created in
-the main thread default to daemon = False.
-
-The entire Python program exits when no alive non-daemon threads are
+- daemon
+- A boolean value indicating whether this thread is a daemon thread.
+
+This must be set before start() is called, otherwise RuntimeError is
+raised. Its initial value is inherited from the creating thread; the
+main thread is not a daemon thread and therefore all threads created in
+the main thread default to daemon = False.
+
+The entire Python program exits when no alive non-daemon threads are
left.
-- ident
-- Thread identifier of this thread or None if it has not been started.
-
-This is a nonzero integer. See the thread.get_ident() function. Thread
-identifiers may be recycled when a thread exits and another thread is
+- ident
+- Thread identifier of this thread or None if it has not been started.
+
+This is a nonzero integer. See the get_ident() function. Thread
+identifiers may be recycled when a thread exits and another thread is
created. The identifier is available even after the thread has exited.
-- name
-- A string used for identification purposes only.
-
-It has no semantics. Multiple threads may be given the same name. The
+- name
+- A string used for identification purposes only.
+
+It has no semantics. Multiple threads may be given the same name. The
initial name is set by the constructor.
-
| | |