def __init__(self,*args, **kwargs): if kwargs is not None: if 'count' in kwargs: self._wcnt = kwargs['count'] else: self._wcnt = WorkerPool.DEFAULT_WORKER_COUNT if 'all_done' in kwargs: self._all_done = kwargs['all_done'] else: def ___pass( *args, **kwargs ): pass self._all_done = ___pass if 'tick' in kwargs: self._tick = kwargs['tick'] self._wpol = list([]) # all workers self._wbsy = dict({}) # busy self._wfre = list([]) # free self._tque = list([]) # task queue self._tick = WorkerPool.DEFAULT_TICK # sleep time if all busy self._wrkr = SchedulerThread(0) # task schedule is worker self._task = Task() # taks for scheduler self._task.target = self._task_schedule self._task.args = tuple() self._task.kwargs = dict() self._ball_done = False def _on_worker_task_done( worker ): """ default calback for scheduler when some worker is done with a task it is appended to free workers queue also marked free in busy dict """ self._wfre.append(worker) self._wbsy[worker._id] = False self.____f = _on_worker_task_done # pool initialization for i in xrange(1,self._wcnt+1) : w = WorkerThread(i) w._pool = self # back reference w._worker_task_done = self.____f self._wpol.append(w) self._wfre.append(w) self._wbsy[i] = False self._wrkr._target = self._task_schedule self._wrkr._args = tuple() self._wrkr._kwargs = dict()
def __init__(self, *args, **kwargs): if kwargs is not None: if 'count' in kwargs: self._wcnt = kwargs['count'] else: self._wcnt = WorkerPool.DEFAULT_WORKER_COUNT if 'all_done' in kwargs: self._all_done = kwargs['all_done'] else: def ___pass(*args, **kwargs): pass self._all_done = ___pass if 'tick' in kwargs: self._tick = kwargs['tick'] self._wpol = list([]) # all workers self._wbsy = dict({}) # busy self._wfre = list([]) # free self._tque = list([]) # task queue self._tick = WorkerPool.DEFAULT_TICK # sleep time if all busy self._wrkr = SchedulerThread(0) # task schedule is worker self._task = Task() # taks for scheduler self._task.target = self._task_schedule self._task.args = tuple() self._task.kwargs = dict() self._ball_done = False def _on_worker_task_done(worker): """ default calback for scheduler when some worker is done with a task it is appended to free workers queue also marked free in busy dict """ self._wfre.append(worker) self._wbsy[worker._id] = False self.____f = _on_worker_task_done # pool initialization for i in xrange(1, self._wcnt + 1): w = WorkerThread(i) w._pool = self # back reference w._worker_task_done = self.____f self._wpol.append(w) self._wfre.append(w) self._wbsy[i] = False self._wrkr._target = self._task_schedule self._wrkr._args = tuple() self._wrkr._kwargs = dict()