def start(self, target, args=(), kwargs={}, group=None, name=None, verbose=False, parallel=True, kwret=None): """Start and save process. Create a pipe to return output.""" if not isinstance(args, tuple): args = (args, ) if parallel: # execute jobs in parallel (main functionality) endout, endin = Pipe(False) if kwret: newargs = (endin, target, kwret) + args mptarget = self.target_with_kwret else: newargs = (endin, target) + args mptarget = self.target process = Process(group, mptarget, name, newargs, kwargs) process.kwret = kwret if self.max < 1 or len(self.procs) < self.max: process.start( ) # start running process in parallel now (or add to queue) else: self.waiting.append(process) # start later else: # execute jobs sequentially process = SimpleProcess(target, name, args, kwargs, kwret=kwret) endin = None endout = process.start( ) # execute process now and wait until it returns self.procs.append((process, endin, endout))
def start(self, target, args=(), kwargs={}, group=None, name=None, verbose=False, parallel=True, kwret=None): """Start and save process. Create a pipe to return output.""" if parallel: endout, endin = Pipe(False) if kwret: newargs = (endin,target,kwret) + args mptarget = self.target_with_kwret else: newargs = (endin,target) + args mptarget = self.target process = Process(group,mptarget,name,newargs,kwargs) process.kwret = kwret process.start() else: process = SimpleProcess(target,name,args,kwargs,kwret=kwret) endin = None endout = process.start() self.procs.append((process,endin,endout))