|  |  |  | @ -1151,15 +1151,19 @@ static void __inc_instance_ref(stratum_instance_t *client) | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | /* Find an __instance_by_id and increase its reference count allowing us to
 | 
			
		
	
		
			
				
					|  |  |  |  |  * use this instance outside of instance_lock without fear of it being | 
			
		
	
		
			
				
					|  |  |  |  |  * dereferenced. */ | 
			
		
	
		
			
				
					|  |  |  |  |  * dereferenced. Does not return dropped clients still on the list. */ | 
			
		
	
		
			
				
					|  |  |  |  | static stratum_instance_t *ref_instance_by_id(sdata_t *sdata, int64_t id) | 
			
		
	
		
			
				
					|  |  |  |  | { | 
			
		
	
		
			
				
					|  |  |  |  | 	stratum_instance_t *client; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	ck_wlock(&sdata->instance_lock); | 
			
		
	
		
			
				
					|  |  |  |  | 	client = __instance_by_id(sdata, id); | 
			
		
	
		
			
				
					|  |  |  |  | 	if (client) | 
			
		
	
		
			
				
					|  |  |  |  | 	if (client) { | 
			
		
	
		
			
				
					|  |  |  |  | 		if (unlikely(client->dropped)) | 
			
		
	
		
			
				
					|  |  |  |  | 			client = NULL; | 
			
		
	
		
			
				
					|  |  |  |  | 		else | 
			
		
	
		
			
				
					|  |  |  |  | 			__inc_instance_ref(client); | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 	ck_wunlock(&sdata->instance_lock); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	return client; | 
			
		
	
	
		
			
				
					|  |  |  | 
 |