From 92dc9863320a20635af2efce845a9b7658afff28 Mon Sep 17 00:00:00 2001
From: Tim Savannah Copyright (c) 2016, 2017 Tim Savannah All Rights Reserved.
-
+
-
-
-
- Copyright (c) 2016, 2017 Tim Savannah All Rights Reserved.
-
-
-
-
func_timeout.StoppableThreadindex
-
-Licensed under the Lesser GNU Public License Version 3, LGPLv3. You should have recieved a copy of this with the source distribution as
-LICENSE, otherwise it is available at https://github.com/kata198/func_timeout/LICENSE
-
+
\ No newline at end of file
diff --git a/doc/func_timeout.exceptions.html b/doc/func_timeout.exceptions.html
index 541d7ec..ae9ec3d 100644
--- a/doc/func_timeout.exceptions.html
+++ b/doc/func_timeout.exceptions.html
@@ -33,7 +33,9 @@ LICENSE, otherwise it is available at https://gith
class FunctionTimedOut(builtins.BaseException)
-
+
-Modules
+
+
-
+func_timeout.StoppableThread = class StoppableThread(threading.Thread)
-ctypes
-os
-threading
-
-
-
-
-
-Classes
-
-
+
+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)
+
-
-
-
-
-
-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
-
-
-Methods defined here:
-
+
-
- @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:
+
-
+
+@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>
-
-
-Methods inherited from threading.Thread:
-
-
-
-
-
-
-
-
-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.
-
-
-
-
-
-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.
-
-
-
-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.
-
-
-
-
-
-
-
-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:
-
-
-
-
-
-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.
-
-
-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.
-
-
-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)
-
-
-Methods defined here:
-
-
-
-
-@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:
-
-
-*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:
+
-
+
+*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.
+
-
+
-
-
-This method returns True just before the run() method starts until just
-after the run() method terminates. The module function enumerate()
+
+
+
+
+This method is deprecated, use is_alive() instead.
+
+
-
+
+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.
-
-
-
-
-
-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.
-
-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
+
-
+
+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.
-
-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
+
-
+
+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.
+
-
+
-
-
-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
+
-
+
+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:
-
+Data descriptors inherited from threading.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
+
-
+
+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.
-
-This is a nonzero integer. See the thread.get_ident() function. Thread
-identifiers may be recycled when a thread exits and another thread is
+
-
+
+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.
-
-It has no semantics. Multiple threads may be given the same name. The
+
-
+
+It has no semantics. Multiple threads may be given the same name. The
initial name is set by the constructor.
-
-
\ No newline at end of file
+
-
-
-
-Data
-__all__ = ('StoppableThread', 'JoinThread')
-FunctionTimedOut - Exception raised when a function times out
+FunctionTimedOut(msg='', timedOutAfter=None, timedOutFunction=None, timedOutArgs=None, timedOutKwargs=None)
+
+FunctionTimedOut - Exception raised when a function times out
@property timedOutAfter - Number of seconds before timeout was triggered
@@ -78,9 +80,7 @@ Methods inherited from builtins.BaseExcep
-
-
-
+
@@ -93,6 +93,10 @@ Methods inherited from builtins.BaseExcep
+
set self.__traceback__ to tb and return self.
+Static methods inherited from builtins.BaseException:
+
+
Data descriptors inherited from builtins.BaseException:
+
-
func_timeout (version 4.2.0)index
func_timeout (version 4.3.0)index
Licensed under the Lesser GNU Public License Version 3, LGPLv3. You should have recieved a copy of this with the source distribution as
@@ -37,6 +37,12 @@ LICENSE, otherwise it is available at https://gith
+
+
| +class StoppableThread(threading.Thread) | ||
| + | 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) | |
| + |
+Methods defined here: +
+Methods inherited from threading.Thread: +
+Data descriptors inherited from threading.Thread: +
| |
| @@ -204,6 +382,6 @@ to return cleanly, but in most cases it Data | ||
| - | __all__ = ('func_timeout', 'func_set_timeout', 'FunctionTimedOut') -__version_tuple__ = (4, 2, 0) | |