    def pull(self, ftask_proc: typing.Callable, fret_proc: typing.Callable) -> List:
        """Pull results from all tasks executed on the runner.

        Parameters
        ----------
        ftask_proc : Callable
            Function to process each task's output
        fret_proc : Callable
            Function to extract returns from task

        Returns
        -------
        List
            Aggregated returns from all tasks
        """
        ret = []
        for task in self._queue:
            task.pull(ftask_proc)
            if task.is_finished():
                if task._ret is not None:
                    ret.append(fret_proc(task))
        self.reset()
        return ret
Pull results from all tasks executed on the runner.

Parameters
----------
ftask_proc : Callable
Function to process each task's output
fret_proc : Callable
Function to extract returns from task

Returns
-------
List
Aggregated returns from all tasks
python/aitemplate/backend/task_runner.py