|  | @@ -10,7 +10,7 @@ import multiprocessing
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  from multiprocessing.pool import Pool, worker
 | 
	
		
			
				|  |  |  from celery.datastructures import ExceptionInfo
 | 
	
		
			
				|  |  | -from celery.utils import gen_unique_id
 | 
	
		
			
				|  |  | +from celery.utils import noop
 | 
	
		
			
				|  |  |  from functools import partial as curry
 | 
	
		
			
				|  |  |  from operator import isNumberType
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -222,7 +222,7 @@ class TaskPool(object):
 | 
	
		
			
				|  |  |                      dead_count))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def apply_async(self, target, args=None, kwargs=None, callbacks=None,
 | 
	
		
			
				|  |  | -            errbacks=None, on_ack=None, meta=None):
 | 
	
		
			
				|  |  | +            errbacks=None, on_ack=noop):
 | 
	
		
			
				|  |  |          """Equivalent of the :func:``apply`` built-in function.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          All ``callbacks`` and ``errbacks`` should complete immediately since
 | 
	
	
		
			
				|  | @@ -233,11 +233,8 @@ class TaskPool(object):
 | 
	
		
			
				|  |  |          kwargs = kwargs or {}
 | 
	
		
			
				|  |  |          callbacks = callbacks or []
 | 
	
		
			
				|  |  |          errbacks = errbacks or []
 | 
	
		
			
				|  |  | -        meta = meta or {}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        on_return = curry(self.on_return, callbacks, errbacks,
 | 
	
		
			
				|  |  | -                          on_ack, meta)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        on_ready = curry(self.on_ready, callbacks, errbacks, on_ack)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          self.logger.debug("TaskPool: Apply %s (args:%s kwargs:%s)" % (
 | 
	
		
			
				|  |  |              target, args, kwargs))
 | 
	
	
		
			
				|  | @@ -245,27 +242,18 @@ class TaskPool(object):
 | 
	
		
			
				|  |  |          self.replace_dead_workers()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          return self._pool.apply_async(target, args, kwargs,
 | 
	
		
			
				|  |  | -                                        callback=on_return)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    def on_return(self, callbacks, errbacks, on_ack, meta, ret_value):
 | 
	
		
			
				|  |  | -        """What to do when the process returns."""
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        # Acknowledge the task as being processed.
 | 
	
		
			
				|  |  | -        if on_ack:
 | 
	
		
			
				|  |  | -            on_ack()
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        self.on_ready(callbacks, errbacks, meta, ret_value)
 | 
	
		
			
				|  |  | +                                        callback=on_ready)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    def on_ready(self, callbacks, errbacks, meta, ret_value):
 | 
	
		
			
				|  |  | +    def on_ready(self, callbacks, errbacks, on_ack, ret_value):
 | 
	
		
			
				|  |  |          """What to do when a worker task is ready and its return value has
 | 
	
		
			
				|  |  |          been collected."""
 | 
	
		
			
				|  |  | +        # Acknowledge the task as being processed.
 | 
	
		
			
				|  |  | +        on_ack()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          if isinstance(ret_value, ExceptionInfo):
 | 
	
		
			
				|  |  |              if isinstance(ret_value.exception, (
 | 
	
		
			
				|  |  |                      SystemExit, KeyboardInterrupt)):
 | 
	
		
			
				|  |  |                  raise ret_value.exception
 | 
	
		
			
				|  |  | -            for errback in errbacks:
 | 
	
		
			
				|  |  | -                errback(ret_value, meta)
 | 
	
		
			
				|  |  | +            [errback(ret_value) for errback in errbacks]
 | 
	
		
			
				|  |  |          else:
 | 
	
		
			
				|  |  | -            for callback in callbacks:
 | 
	
		
			
				|  |  | -                callback(ret_value, meta)
 | 
	
		
			
				|  |  | +            [callback(ret_value) for callback in callbacks]
 |