Hi all

I was wondering if I should extend lifetime of a CompletionQueue according 
to lifetime of a rpc call in a async server or it has been checked 
internally. As an example, let's check the the simple async helloworld 
server here 
<https://github.com/grpc/grpc/blob/master/examples/cpp/helloworld/greeter_async_server.cc>.
 
Now if we assume that processing phase takes a lot of time, two situation 
may happen:

   1. Application may go into stopping phase before we try to write back 
   results. From stopping phase, I mean when Shutdown() method is called for 
   Server and CompletionQueue. What happens if I write in a CompletionQueue 
*after 
   *it is shutdown? Will they just be ignored? I found in Shutdown() docs 
   that application should not enqueue anything after shutdown is called (and 
   I suppose Write() or Finish() enqueues). Does this mean that I should 
   manually check if a CompletionQueue is shutting down via a secondary 
   flag(because I could not find anything that shows a completion queue is 
   shutting down) before doing anything? 
   2. If I have set an Alarm on my CompletionQueue, should I cancel it 
   before shutting down the CompletionQueue? Because an alarm may expire after 
   I started shutting down the queue.
   
Since grpc samples are primitive, there are a lot of conditions that is not 
checked in them and I'm not sure what exactly happens in these case. Is 
these any example for a simple rpc request that handles these conditions 
better?

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to grpc-io+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/538638c9-5171-4a78-afef-a58f4e349fb7%40googlegroups.com.

Reply via email to