| 
					
				 | 
			
			
				@@ -76,7 +76,7 @@ typedef struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } pick_first_lb_policy; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #define GET_SELECTED(p) \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ((grpc_connected_subchannel *)gpr_atm_no_barrier_load(&(p)->selected)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ((grpc_connected_subchannel *)gpr_atm_acq_load(&(p)->selected)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 void pf_destroy(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   pick_first_lb_policy *p = (pick_first_lb_policy *)pol; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -268,10 +268,10 @@ static void pf_connectivity_changed(grpc_exec_ctx *exec_ctx, void *arg, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         selected = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             grpc_subchannel_get_connected_subchannel(selected_subchannel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         GPR_ASSERT(selected != NULL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        gpr_atm_no_barrier_store(&p->selected, (gpr_atm)selected); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         GRPC_CONNECTED_SUBCHANNEL_REF(selected, "picked_first"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /* drop the pick list: we are connected now */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         GRPC_LB_POLICY_WEAK_REF(&p->base, "destroy_subchannels"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        gpr_atm_rel_store(&p->selected, (gpr_atm)selected); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         grpc_exec_ctx_enqueue(exec_ctx, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                               grpc_closure_create(destroy_subchannels, p), 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /* update any calls that were waiting for a pick */ 
			 |