Hi Rafael,

It's not possible to cancel GetFlightInfo right now as that's made using the 
synchronous API and we don't expose the gRPC ClientContext. I've been 
prototyping async Flight APIs in C++ and as part of that cancellation would be 
better supported.

DoGet can be cancelled. Construct a StopSource [1] and provide the token() in 
the FlightCallOptions. Then call StopSource::RequestStop. Note that again, 
because we use synchronous gRPC APIs and we haven't done the work to plumb the 
StopSource to grpc::ClientContext, this can't cancel a blocking read from the 
server (it will only "cancel" in between two read calls).

I filed some issues to improve this [2][3]. The key thing we need to support 
however is [4]. 

[1]: 
https://github.com/apache/arrow/blob/2464b149b3d06c6c3e45136dad0f3956772ca487/cpp/src/arrow/util/cancel.h#L37
[2]: https://github.com/apache/arrow-cookbook/issues/220
[3]: https://issues.apache.org/jira/browse/ARROW-16671
[4]: https://issues.apache.org/jira/browse/ARROW-12938

-David

On Thu, May 26, 2022, at 12:31, Rafael Telles wrote:
> Hi,
> 
> I need to cancel calls to GetFlightInfo and GetStream on C++ from a second 
> thread. I see that FlightCallOptions has a stop_token which looks like I 
> should be able to use, but I don't know how... Is there any documentation 
> around this?
> 
> Thanks so much!
> 

Reply via email to