| 
					
				 | 
			
			
				@@ -69,7 +69,7 @@ class TestThreadManager final : public grpc::ThreadManager { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         num_work_found_(0) {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc::ThreadManager::WorkStatus PollForWork(void** tag, bool* ok) override; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  void DoWork(void* tag, bool ok, bool resources) override { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  void DoWork(void* /* tag */, bool /*ok*/, bool /*resources*/) override { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     num_do_work_.fetch_add(1, std::memory_order_relaxed); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // Simulate work by sleeping 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -143,18 +143,16 @@ class ThreadManagerTest 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   std::vector<std::unique_ptr<TestThreadManager>> thread_manager_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-INSTANTIATE_TEST_SUITE_P( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ThreadManagerTest, ThreadManagerTest, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ::testing::ValuesIn( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        {TestThreadManagerSettings{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             2 /* min_pollers */, 10 /* max_pollers */, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             10 /* poll_duration_ms */, 1 /* work_duration_ms */, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             50 /* max_poll_calls */, INT_MAX /* thread_limit */, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             1 /* thread_manager_count */}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         TestThreadManagerSettings{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             1 /* min_pollers */, 1 /* max_pollers */, 1 /* poll_duration_ms */, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             10 /* work_duration_ms */, 50 /* max_poll_calls */, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             3 /* thread_limit */, 2 /* thread_manager_count */}})); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+TestThreadManagerSettings scenarios[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    {2 /* min_pollers */, 10 /* max_pollers */, 10 /* poll_duration_ms */, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     1 /* work_duration_ms */, 50 /* max_poll_calls */, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     INT_MAX /* thread_limit */, 1 /* thread_manager_count */}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    {1 /* min_pollers */, 1 /* max_pollers */, 1 /* poll_duration_ms */, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     10 /* work_duration_ms */, 50 /* max_poll_calls */, 3 /* thread_limit */, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     2 /* thread_manager_count */}}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+INSTANTIATE_TEST_SUITE_P(ThreadManagerTest, ThreadManagerTest, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                         ::testing::ValuesIn(scenarios)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 TEST_P(ThreadManagerTest, TestPollAndWork) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   for (auto& tm : thread_manager_) { 
			 |