def spawn_managed_thread(self, run_method, protected=False):
        gt = eventlet.spawn(run_method)
        if not protected:
            self._active_threads[gt] = MANAGED_THREAD
        else:
            self._protected_threads.add(gt)
        gt.link(self._handle_thread_exited)
        return gt
compute overlaps between sets.
dataset/ETHPy150Open onefinestay/nameko/nameko/containers.py/ServiceContainer.spawn_managed_thread--crossover with--dataset/ETHPy150Open CGATOxford/cgat/obsolete/pipeline_kamilah.py/makeOverlapPC