eitsupi commented on PR #975:
URL: https://github.com/apache/arrow-nanoarrow/pull/975#issuecomment-6244143750
Feedback requested on the evaluation boundary: the implementation uses
`R_ToplevelExec()` around `R_tryCatch()` for errors and interrupts.
`R_tryCatch()` alone does not contain non-local exits such as
`invokeRestart("abort")`; allowing those jumps across an Arrow C Stream
callback can bypass a C/C++ consumer's cleanup. The outer boundary converts
these exits to EIO.
This isolation also means the caller's calling handlers do not apply inside
the callback, and warnings are handled in the isolated top-level context unless
the callback handles them itself. These semantics are documented. Is this
boundary and its handler behavior appropriate for the R API, or would you
prefer another approach using public R APIs?
--
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]