|  | @@ -33,7 +33,7 @@ from time import sleep
 | 
	
		
			
				|  |  |  from weakref import WeakValueDictionary, ref
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  from amqp.utils import promise
 | 
	
		
			
				|  |  | -from billiard.pool import RUN, TERMINATE, ACK, NACK, EX_RECYCLE, WorkersJoined
 | 
	
		
			
				|  |  | +from billiard.pool import RUN, TERMINATE, ACK, NACK, WorkersJoined
 | 
	
		
			
				|  |  |  from billiard import pool as _pool
 | 
	
		
			
				|  |  |  from billiard.einfo import ExceptionInfo
 | 
	
		
			
				|  |  |  from billiard.queues import _SimpleQueue
 | 
	
	
		
			
				|  | @@ -999,28 +999,27 @@ class AsynPool(_pool.Pool):
 | 
	
		
			
				|  |  |          # we cannot reuse the sockets again, because we don't know if
 | 
	
		
			
				|  |  |          # the process wrote/read anything frmo them, and if so we cannot
 | 
	
		
			
				|  |  |          # restore the message boundaries.
 | 
	
		
			
				|  |  | -        if proc.exitcode != EX_RECYCLE:
 | 
	
		
			
				|  |  | -            if not job._accepted:
 | 
	
		
			
				|  |  | -                # job was not acked, so find another worker to send it to.
 | 
	
		
			
				|  |  | -                self._put_back(job)
 | 
	
		
			
				|  |  | -            writer = _get_job_writer(job)
 | 
	
		
			
				|  |  | -            if writer:
 | 
	
		
			
				|  |  | -                self._active_writers.discard(writer)
 | 
	
		
			
				|  |  | -                del(writer)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            if not proc.dead:
 | 
	
		
			
				|  |  | -                proc.dead = True
 | 
	
		
			
				|  |  | -                # Replace queues to avoid reuse
 | 
	
		
			
				|  |  | -                before = len(self._queues)
 | 
	
		
			
				|  |  | -                try:
 | 
	
		
			
				|  |  | -                    queues = self._find_worker_queues(proc)
 | 
	
		
			
				|  |  | -                    if self.destroy_queues(queues, proc):
 | 
	
		
			
				|  |  | -                        self._queues[self.create_process_queues()] = None
 | 
	
		
			
				|  |  | -                except ValueError:
 | 
	
		
			
				|  |  | -                    pass
 | 
	
		
			
				|  |  | -                    # Not in queue map, make sure sockets are closed.
 | 
	
		
			
				|  |  | -                    #self.destroy_queues((proc.inq, proc.outq, proc.synq))
 | 
	
		
			
				|  |  | -                assert len(self._queues) == before
 | 
	
		
			
				|  |  | +        if not job._accepted:
 | 
	
		
			
				|  |  | +            # job was not acked, so find another worker to send it to.
 | 
	
		
			
				|  |  | +            self._put_back(job)
 | 
	
		
			
				|  |  | +        writer = _get_job_writer(job)
 | 
	
		
			
				|  |  | +        if writer:
 | 
	
		
			
				|  |  | +            self._active_writers.discard(writer)
 | 
	
		
			
				|  |  | +            del(writer)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if not proc.dead:
 | 
	
		
			
				|  |  | +            proc.dead = True
 | 
	
		
			
				|  |  | +            # Replace queues to avoid reuse
 | 
	
		
			
				|  |  | +            before = len(self._queues)
 | 
	
		
			
				|  |  | +            try:
 | 
	
		
			
				|  |  | +                queues = self._find_worker_queues(proc)
 | 
	
		
			
				|  |  | +                if self.destroy_queues(queues, proc):
 | 
	
		
			
				|  |  | +                    self._queues[self.create_process_queues()] = None
 | 
	
		
			
				|  |  | +            except ValueError:
 | 
	
		
			
				|  |  | +                pass
 | 
	
		
			
				|  |  | +                # Not in queue map, make sure sockets are closed.
 | 
	
		
			
				|  |  | +                #self.destroy_queues((proc.inq, proc.outq, proc.synq))
 | 
	
		
			
				|  |  | +            assert len(self._queues) == before
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def destroy_queues(self, queues, proc):
 | 
	
		
			
				|  |  |          """Destroy queues that can no longer be used, so that they
 |