def store_episode(self, episode: Episode, lock: bool = False) -> None: """ Store a new episode in the memory. :param episode: the new episode to store :return: None """ self.assert_not_frozen() # Calling super.store() so that in case a memory backend is used, the memory backend can store this episode. super().store_episode(episode) if self._buffer[-1].length() == 0: self._buffer[-1] = episode else: self._buffer.append(episode) self.transitions.extend(episode.transitions) self._num_transitions += episode.length() self.close_last_episode(False)
def store_episode(self, episode: Episode, lock: bool = True) -> None: """ Store a new episode in the memory. :param episode: the new episode to store :return: None """ if lock: self.reader_writer_lock.lock_writing_and_reading() if self._buffer[-1].length() == 0: self._buffer[-1] = episode else: self._buffer.append(episode) self.transitions.extend(episode.transitions) self._num_transitions += episode.length() self.close_last_episode(False) if lock: self.reader_writer_lock.release_writing_and_reading()