| 
					
				 | 
			
			
				@@ -24,7 +24,7 @@ from celery.task import task as task_dec 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from celery.task import periodic_task as periodic_task_dec 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from celery.utils import uuid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from celery.worker import WorkController, Queues, Timers, EvLoop, Pool 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from celery.worker.buckets import FastQueue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from celery.worker.buckets import FastQueue, AsyncTaskBucket 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from celery.worker.job import Request 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from celery.worker.consumer import BlockingConsumer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from celery.worker.consumer import QoS, RUN, PREFETCH_COUNT_MAX, CLOSE 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -959,15 +959,28 @@ class test_WorkController(AppCase): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.assertIsNone(worker.mediator) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.assertEqual(worker.ready_queue.put, worker.process_task) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def test_enable_rate_limits_eventloop(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            worker = self.create_worker(disable_rate_limits=False, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        use_eventloop=True, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        pool_cls='processes') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        except ImportError: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            raise SkipTest('multiprocessing not supported') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.assertIsInstance(worker.ready_queue, AsyncTaskBucket) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.assertFalse(worker.mediator) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.assertNotEqual(worker.ready_queue.put, worker.process_task) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def test_disable_rate_limits_processes(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             worker = self.create_worker(disable_rate_limits=True, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        use_eventloop=False, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         pool_cls='processes') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         except ImportError: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             raise SkipTest('multiprocessing not supported') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.assertIsInstance(worker.ready_queue, FastQueue) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.assertTrue(worker.mediator) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.assertNotEqual(worker.ready_queue.put, worker.process_task) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.assertFalse(worker.mediator) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.assertEqual(worker.ready_queue.put, worker.process_task) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def test_process_task_sem(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         worker = self.worker 
			 |