Hello Christian
Am Freitag, 12. Oktober 2018 12:12:16 UTC+2 schrieb Christian Rivasseau:
>
>
> Then case to BaseMethod:
>
> bool ok;
> while (true) {
> if (!m_cq->Next(&tag, &ok)) break;
>
> MOOSE_ASSERT(ok);
> static_cast<MyBaseMethod*>(tag)->proceed();
> }
>
The pure inheritance solution you suggested was not very practical to me as
I needed to have each call with it's own RequestType and ResponseType,
which suggested a CRTP solution. I went for this plus some macros, which
forced me to add an additional enum to identify the object and then static
cast. Gotta say, lots of boilerplate I didn't see coming. Especially since
the sync server where kind of neat and in-a-box.
Anyway, it appears to work now and I can start tests next week.
If I may still inquire, in case you or anybody else knows about the thread
safety of the functions involved.
The docs say somewhere that Next() is thread safe so multiple workers may
serve requests.
But what about the others involved? Specifically
AsyncService::RequestMyMethod() and the shutdown methods Server::Shutdown()
and CompletionQueue::Shutdown(). Can I safely have multiple threads doing a
loop like we have them in the example?
Thank you for your input!
Stephan
--
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/badfdc0e-69ba-4e60-a850-37c95e575778%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.