'Run action and capture results or exception.
Do not override. Do not call directly. Executed by the start() method.'

def run(self):

    try:
        self._result.put((self.action(), None))
    except:
        self._result.put((None, sys.exc_info()))
