Thread entry point: does the job once, stored results, and dies.

def _thread(self):
        """ Thread entry point: does the job once, stored results, and dies. """
        # Get
        args, kwargs = self._jobs.get()

        # Stop thread when (None, None) comes in
        if args is None and kwargs is None:
            return None  # Wrappers should exit as well

        # Work
        try:
            self._results.append(self._worker(*args, **kwargs))
            return True
        except Exception as e:
            self._errors.append(e)
            return False
        finally:
            self._jobs.task_done()
            with self._jobfinished:
                self._jobfinished.notify()