| 
					
				 | 
			
			
				@@ -271,16 +271,8 @@ static void notify_on_write(grpc_tcp* tcp) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (grpc_tcp_trace.enabled()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     gpr_log(GPR_INFO, "TCP:%p notify_on_write", tcp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (grpc_event_engine_run_in_background()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // If there is a polling engine always running in the background, there is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // no need to run the backup poller. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    GRPC_CLOSURE_INIT(&tcp->write_done_closure, tcp_handle_write, tcp, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      grpc_schedule_on_exec_ctx); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (!grpc_event_engine_run_in_background()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     cover_self(tcp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    GRPC_CLOSURE_INIT(&tcp->write_done_closure, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      tcp_drop_uncovered_then_handle_write, tcp, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      grpc_schedule_on_exec_ctx); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc_fd_notify_on_write(tcp->em_fd, &tcp->write_done_closure); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -884,8 +876,6 @@ static void tcp_handle_error(void* arg /* grpc_tcp */, grpc_error* error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    * ready. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc_fd_set_readable(tcp->em_fd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc_fd_set_writable(tcp->em_fd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  GRPC_CLOSURE_INIT(&tcp->error_closure, tcp_handle_error, tcp, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    grpc_schedule_on_exec_ctx); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc_fd_notify_on_error(tcp->em_fd, &tcp->error_closure); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1248,6 +1238,16 @@ grpc_endpoint* grpc_tcp_create(grpc_fd* em_fd, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   tcp->tb_head = nullptr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   GRPC_CLOSURE_INIT(&tcp->read_done_closure, tcp_handle_read, tcp, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     grpc_schedule_on_exec_ctx); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (grpc_event_engine_run_in_background()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // If there is a polling engine always running in the background, there is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // no need to run the backup poller. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GRPC_CLOSURE_INIT(&tcp->write_done_closure, tcp_handle_write, tcp, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      grpc_schedule_on_exec_ctx); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GRPC_CLOSURE_INIT(&tcp->write_done_closure, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      tcp_drop_uncovered_then_handle_write, tcp, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      grpc_schedule_on_exec_ctx); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   /* Always assume there is something on the queue to read. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   tcp->inq = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #ifdef GRPC_HAVE_TCP_INQ 
			 |