674a675 > sentinels_taken = 0 676c677,679 < inqueue._reader.recv() --- > obj = inqueue._reader.recv() > if obj is None: > sentinels_taken += 1 677a681,683 > for _ in range(sentinels_taken): > inqueue._writer.send(None) > inqueue._rlock.release() 686c692,698 < task_handler._state = TERMINATE --- > > change_notifier.put(None) > # We must wait for the worker handler to exit before terminating > # workers because we don't want workers to be restarted behind our back. > util.debug('joining worker handler') > if threading.current_thread() is not worker_handler: > worker_handler.join() 690a703,704 > task_handler._state = TERMINATE > 696d709 < change_notifier.put(None) 699,704d711 < # We must wait for the worker handler to exit before terminating < # workers because we don't want workers to be restarted behind our back. < util.debug('joining worker handler') < if threading.current_thread() is not worker_handler: < worker_handler.join() < 709a717,719 > p.join(0.1) > if p.exitcode is None: > util.debug('terminating worker')