Beispiel #1
0
 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))
Beispiel #2
0
 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))