def submit(self, func, *args, **kwargs): subid = uuid.uuid4().hex job_data = joblib.delayed(func)(*args, **kwargs) fut = Future() fut.execid = self.execid fut.subid = subid self._nanny_subids[self._nanny_ind][subid] = (None, fut, job_data) fut.set_running_or_notify_cancel() self._nanny_ind += 1 self._nanny_ind = self._nanny_ind % self._num_nannies return fut