| 
					
				 | 
			
			
				@@ -321,6 +321,8 @@ grpc_buffer_pool *grpc_buffer_pool_create(void) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   buffer_pool->combiner = grpc_combiner_create(NULL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   buffer_pool->free_pool = INT64_MAX; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   buffer_pool->size = INT64_MAX; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  buffer_pool->step_scheduled = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  buffer_pool->reclaiming = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc_closure_init(&buffer_pool->bpstep_closure, bpstep, buffer_pool); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc_closure_init(&buffer_pool->bpreclaimation_done_closure, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     bpreclaimation_done_closure, buffer_pool); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -404,8 +406,8 @@ void grpc_buffer_user_alloc(grpc_exec_ctx *exec_ctx, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             grpc_buffer_user *buffer_user, size_t size, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             grpc_closure *optional_on_done) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   gpr_mu_lock(&buffer_user->mu); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  buffer_user->allocated += size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  buffer_user->free_pool -= size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  buffer_user->allocated += (int64_t)size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  buffer_user->free_pool -= (int64_t)size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (buffer_user->free_pool < 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     grpc_closure_list_append(&buffer_user->on_allocated, optional_on_done, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                              GRPC_ERROR_NONE); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -426,8 +428,8 @@ void grpc_buffer_user_free(grpc_exec_ctx *exec_ctx, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   gpr_mu_lock(&buffer_user->mu); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   GPR_ASSERT(buffer_user->allocated >= (int64_t)size); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   bool was_zero_or_negative = buffer_user->free_pool <= 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  buffer_user->free_pool += size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  buffer_user->allocated -= size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  buffer_user->free_pool += (int64_t)size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  buffer_user->allocated -= (int64_t)size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   bool is_bigger_than_zero = buffer_user->free_pool > 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (is_bigger_than_zero && was_zero_or_negative && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       !buffer_user->added_to_free_pool) { 
			 |