lidavidm commented on PR #36517:
URL: https://github.com/apache/arrow/pull/36517#issuecomment-1638873952

   Antoine, I have an email notification but I don't see your message, but for 
clarification, "drop ourselves" here means the 
`flight::internal::ClientTransport::SetAsyncRpc(listener.get(), nullptr);` 
line, which causes the `UnaryUnaryAsyncCall` to be destructed; it looks like 
gRPC doesn't like us doing this (only on macOS?) because we are appear to be 
running on a gRPC thread at the time (I wonder if on macOS, a thread is spawned 
for each async call instead of using a pool?) - I'll have to look into what 
happens on macOS
   
   It's not strictly necessary to make that call anyways (once the client drops 
the Listener, the `UnaryUnaryAsyncCall` will get dropped with it since it's 
stored as a unique_ptr inside the Listener) - but if the client doesn't retain 
the listener, then when we drop our reference to the listener, we'll end up 
destructing ourselves _anyways_.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to