Source code for androlyze.util.StopThread


# encoding: utf-8

__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"

from threading import Event
import threading

[docs]class StopThread(threading.Thread): ''' Extends the `Thread` with an `Event` and the `terminate` method like the `multiprocessing` api offers it. Calling it will trigger the `Event`. Just implement your cleanup code for this event. ''' def __init__(self, *args, **kwargs): super(StopThread, self).__init__(*args, **kwargs) self.shall_terminate_event = Event()
[docs] def terminate(self): ''' Immitate the `processing` API and offer a way to do some clean up in the `Thread`. ''' self.shall_terminate_event.set()
[docs] def shall_terminate(self): ''' Can be queried to know if the `Thread` shall do some cleanup ''' return self.shall_terminate_event.is_set()