|  | @@ -47,9 +47,6 @@
 | 
	
		
			
				|  |  |  using grpc_core::ServerAddress;
 | 
	
		
			
				|  |  |  using grpc_core::ServerAddressList;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static gpr_once g_basic_init = GPR_ONCE_INIT;
 | 
	
		
			
				|  |  | -static gpr_mu g_init_mu;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  grpc_core::TraceFlag grpc_trace_cares_address_sorting(false,
 | 
	
		
			
				|  |  |                                                        "cares_address_sorting");
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -89,8 +86,6 @@ typedef struct grpc_ares_hostbyname_request {
 | 
	
		
			
				|  |  |    bool is_balancer;
 | 
	
		
			
				|  |  |  } grpc_ares_hostbyname_request;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void do_basic_init(void) { gpr_mu_init(&g_init_mu); }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  static void log_address_sorting_list(const ServerAddressList& addresses,
 | 
	
		
			
				|  |  |                                       const char* input_output_str) {
 | 
	
		
			
				|  |  |    for (size_t i = 0; i < addresses.size(); i++) {
 | 
	
	
		
			
				|  | @@ -588,12 +583,12 @@ static void grpc_cancel_ares_request_locked_impl(grpc_ares_request* r) {
 | 
	
		
			
				|  |  |  void (*grpc_cancel_ares_request_locked)(grpc_ares_request* r) =
 | 
	
		
			
				|  |  |      grpc_cancel_ares_request_locked_impl;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +// ares_library_init and ares_library_cleanup are currently no-op except under
 | 
	
		
			
				|  |  | +// Windows. Calling them may cause race conditions when other parts of the
 | 
	
		
			
				|  |  | +// binary calls these functions concurrently.
 | 
	
		
			
				|  |  | +#ifdef GPR_WINDOWS
 | 
	
		
			
				|  |  |  grpc_error* grpc_ares_init(void) {
 | 
	
		
			
				|  |  | -  gpr_once_init(&g_basic_init, do_basic_init);
 | 
	
		
			
				|  |  | -  gpr_mu_lock(&g_init_mu);
 | 
	
		
			
				|  |  |    int status = ares_library_init(ARES_LIB_INIT_ALL);
 | 
	
		
			
				|  |  | -  gpr_mu_unlock(&g_init_mu);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |    if (status != ARES_SUCCESS) {
 | 
	
		
			
				|  |  |      char* error_msg;
 | 
	
		
			
				|  |  |      gpr_asprintf(&error_msg, "ares_library_init failed: %s",
 | 
	
	
		
			
				|  | @@ -605,11 +600,11 @@ grpc_error* grpc_ares_init(void) {
 | 
	
		
			
				|  |  |    return GRPC_ERROR_NONE;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -void grpc_ares_cleanup(void) {
 | 
	
		
			
				|  |  | -  gpr_mu_lock(&g_init_mu);
 | 
	
		
			
				|  |  | -  ares_library_cleanup();
 | 
	
		
			
				|  |  | -  gpr_mu_unlock(&g_init_mu);
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | +void grpc_ares_cleanup(void) { ares_library_cleanup(); }
 | 
	
		
			
				|  |  | +#else
 | 
	
		
			
				|  |  | +grpc_error* grpc_ares_init(void) { return GRPC_ERROR_NONE; }
 | 
	
		
			
				|  |  | +void grpc_ares_cleanup(void) {}
 | 
	
		
			
				|  |  | +#endif  // GPR_WINDOWS
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /*
 | 
	
		
			
				|  |  |   * grpc_resolve_address_ares related structs and functions
 |