zeroshade commented on code in PR #43632: URL: https://github.com/apache/arrow/pull/43632#discussion_r1713969745
########## cpp/src/arrow/c/abi.h: ########## @@ -228,6 +228,65 @@ struct ArrowDeviceArrayStream { #endif // ARROW_C_DEVICE_STREAM_INTERFACE +#ifndef ARROW_C_ASYNC_STREAM_INTERFACE +#define ARROW_C_ASYNC_STREAM_INTERFACE + +// Similar to ArrowDeviceArrayStream, except designed for an asynchronous +// style of interaction. While ArrowDeviceArrayStream provides producer +// defined callbacks, this is intended to be created by the consumer instead. +// The consumer passes this handler to the producer, which in turn uses the +// callbacks to inform the consumer of events in the stream. +struct ArrowAsyncDeviceStreamHandler { + // Handler for receiving a schema. The passed in stream_schema should be + // released or moved by the handler (producer is giving ownership of it to + // the handler). + // + // The `extension_param` argument can be null or can be used by a producer Review Comment: > How should it be freed/what is the lifetime + ownership? (Especially in the case where the consumer may not understand the format of the extension and won't know how to free it?) The intent was that the `extension_param` is entirely owned by the producer, the consumer shouldn't care or need to manage the lifetime of the extension at all. -- 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: github-unsubscr...@arrow.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org