I'm not sure what you mean when you refer to tag->status and tag->reply.
The gRPC API does not define a particular API for the tag; that's entirely
up to your application code, so I have no idea what those fields represent
or how they are being set.

Yang's earlier description is correct: the ok parameter is an indication of
whether the operation corresponding to the returned tag was successful.
What a failure means depends on what the operation was.  If it was a
RequestCall(), then it means that the completion queue is shutting down and
you can stop listening for new calls.  For any request as part of a call
(e.g., a read or a write), it means that there was a problem with the
operation and you should call Finish() to get the call's final status.

On Thu, Aug 31, 2017 at 11:30 PM, 谭锦彪 <[email protected]> wrote:

> Hi
>
> I meet the situation that the Next return true, but ok==false, howerer,
> the content of the tag is right, tag->status.ok() return true, tag->reply
> is right too, That confuse me,
> why would this situation happen? Could I ignore the check of ok?
>
> 在 2017年8月2日星期三 UTC+8上午6:57:16,Yang Gao写道:
>
>> Usually we have a loop calling Next and when we are sure there will be no
>> more work adding to the completion queue we call completion queue's
>> Shutdown method to shutdown the queue.
>> It will in turn cause the Next to return false and it can be used to
>> break out of the loop.
>>
>> The ok parameter is an indication of the success of that particular
>> operation and usually is not related to the cq life time management.
>>
>>
>> On Monday, July 10, 2017 at 2:32:37 AM UTC-7, Przemysław Sobala wrote:
>>>
>>> Hello
>>> What is the difference between method's
>>> bool CompletionQueue::Next(void** tag, bool* ok)
>>> return value and 2nd parameter's value?
>>>
>>> Reading docs, it says:
>>> /// \param ok[out] true if read a regular event, false otherwise.
>>> /// \return true if read a regular event, false if the queue is shutting
>>> down
>>>
>>> Following the example:
>>> while (true) {
>>>      // Block waiting to read the next event from the completion queue.
>>> The
>>>      // event is uniquely identified by its tag, which in this case is
>>> the
>>>      // memory address of a CallData instance.
>>>      // The return value of Next should always be checked. This return
>>> value
>>>      // tells us whether there is any kind of event or cq_ is shutting
>>> down.
>>>      GPR_ASSERT(cq_->Next(&tag, &ok));
>>>      GPR_ASSERT(ok);
>>>      static_cast<CallData*>(tag)->Proceed();
>>>    }
>>> it breaks whether the return value or ok parameter is false.
>>> But in the production environment maybe I can break the loop when the
>>> queue is shutting down (based on return value) and continue when ok
>>> parameter's value is false?
>>> What is the most preferable approach? Should I consider both of them as
>>> the same and break on false as in the example?
>>>
>>> --
>>> regards
>>> Przemysław Sobala
>>>
>> --
> 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 [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/grpc-io.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/grpc-io/35ece217-c182-4dd9-b779-bbe8bf6b58d3%40googlegroups.com
> <https://groups.google.com/d/msgid/grpc-io/35ece217-c182-4dd9-b779-bbe8bf6b58d3%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Mark D. Roth <[email protected]>
Software Engineer
Google, Inc.

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/CAJgPXp6O8y6o%2ByPnU-%3DiBRSAOgFU7hodNA8xFfrCkdDYLXVbyA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to