def execute(self):
        self.count = 0
        self.taskset = []
        self.results = {}
        self.totaltime = time.time()
        for task in list(self.taskseq):
            self.taskset.append(task)
            task.add_callback('resolved', self.child_done, self.count)
            self.count += 1
        self.numtasks = self.count
        with self.regcond:
            for task in list(self.taskset):
                task.initialize(self)
                task.start()
            self.totaltime = time.time() - self.totaltime
            while self.count > 0:
                self.regcond.wait()
        for key in self.results.keys():
            value = self.results[key]
            if isinstance(value, Exception):
                (count, task) = key
                self.logger.error("Child task %s terminated with exception: %s" % (
                    task.tag, str(value)))
                raise value
        return 0