|  | @@ -81,11 +81,20 @@ cdef class Server:
 | 
	
		
			
				|  |  |            self.c_server, queue.c_completion_queue, NULL)
 | 
	
		
			
				|  |  |      self.registered_completion_queues.append(queue)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +  def register_non_listening_completion_queue(
 | 
	
		
			
				|  |  | +      self, CompletionQueue queue not None):
 | 
	
		
			
				|  |  | +    if self.is_started:
 | 
	
		
			
				|  |  | +      raise ValueError("cannot register completion queues after start")
 | 
	
		
			
				|  |  | +    with nogil:
 | 
	
		
			
				|  |  | +      grpc_server_register_non_listening_completion_queue(
 | 
	
		
			
				|  |  | +          self.c_server, queue.c_completion_queue, NULL)
 | 
	
		
			
				|  |  | +    self.registered_completion_queues.append(queue)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    def start(self):
 | 
	
		
			
				|  |  |      if self.is_started:
 | 
	
		
			
				|  |  |        raise ValueError("the server has already started")
 | 
	
		
			
				|  |  |      self.backup_shutdown_queue = CompletionQueue()
 | 
	
		
			
				|  |  | -    self.register_completion_queue(self.backup_shutdown_queue)
 | 
	
		
			
				|  |  | +    self.register_non_listening_completion_queue(self.backup_shutdown_queue)
 | 
	
		
			
				|  |  |      self.is_started = True
 | 
	
		
			
				|  |  |      with nogil:
 | 
	
		
			
				|  |  |        grpc_server_start(self.c_server)
 | 
	
	
		
			
				|  | @@ -169,4 +178,3 @@ cdef class Server:
 | 
	
		
			
				|  |  |            time.sleep(0)
 | 
	
		
			
				|  |  |        with nogil:
 | 
	
		
			
				|  |  |          grpc_server_destroy(self.c_server)
 | 
	
		
			
				|  |  | -
 |