'Run the given method in a sub-thread.'

def start(self, stack_id, func, *args, **kwargs):

    if (stack_id not in self.groups):
        self.groups[stack_id] = threadgroup.ThreadGroup()
    def log_exceptions(gt):
        try:
            gt.wait()
        except Exception:
            LOG.exception('Unhandled    error    in    asynchronous    task')
        except BaseException:
            pass
    req_cnxt = oslo_context.get_current()
    th = self.groups[stack_id].add_thread(self._start_with_trace, req_cnxt, self._serialize_profile_info(), func, *args, **kwargs)
    th.link(log_exceptions)
    return th
