def __init__()

in rlmeta/core/loop.py [0:0]


    def __init__(self,
                 env_factory: EnvFactory,
                 agent_factory: AgentFactory,
                 controller: Union[Controller, remote.Remote],
                 running_phase: Phase,
                 should_update: bool = False,
                 num_rollouts: int = 1,
                 num_workers: Optional[int] = None,
                 index: int = 0,
                 index_offset: Optional[int] = None,
                 seed: Optional[int] = None) -> None:
        self._running_phase = running_phase
        self._should_update = should_update
        self._index = index
        self._num_rollouts = num_rollouts
        self._num_workers = min(mp.cpu_count(), self._num_rollouts)
        if num_workers is not None:
            self._num_workers = min(self._num_workers, num_workers)
        if index_offset is None:
            self._index_offset = index * num_rollouts
        else:
            self._index_offset = index_offset
        self._seed = seed

        self._env_factory = env_factory
        self._agent_factory = agent_factory
        self._controller = controller

        self._workloads = self._compute_workloads()
        self._async_loops = []
        self._processes = []

        index_offset = self._index_offset
        for i, workload in enumerate(self._workloads):
            loop = AsyncLoop(self._env_factory, self._agent_factory,
                             self._controller, self.running_phase,
                             self.should_update, workload, i, index_offset,
                             self.seed)
            self._async_loops.append(loop)
            index_offset += workload