[ 
https://issues.apache.org/jira/browse/ARROW-15841?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated ARROW-15841:
-----------------------------------
    Labels: pull-request-available  (was: )

> [R] Implement SafeCallIntoR to safely call the R API from another thread
> ------------------------------------------------------------------------
>
>                 Key: ARROW-15841
>                 URL: https://issues.apache.org/jira/browse/ARROW-15841
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: R
>            Reporter: Dewey Dunnington
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> In ARROW-9235 we have a problem where we need to evaluate code (may be C++ 
> that calls the R API in a way that may allocate R memory or literal R code) 
> on the R main thread. As discussed in the pull request ( 
> https://github.com/apache/arrow/pull/12323#issuecomment-1054726309 ), there 
> are other times that this has come up and will come up in the future (e.g., 
> evaluating user-defined R functions from the query engine, implementing 
> extension types from R).
> After discussing with [~westonpace], it seems like it is worth investing in a 
> {{SafeCallFromR()}} C++ function that lives in the R bindings. The initial 
> approach (that may need to be altered as we go) will be to
> - have a global object that is initialized at the beginning of a C++ call 
> from R to specific functions (and released on exit) that maintains some list 
> of tasks that need to run on the R main thread and an event loop to 
> periodically evaluate them while background tasks are running.
> - define a {{SafeCallFromR()}} C++ function that adds a task to the global 
> object and waits for the result to come back.
> (with apologies to Weston if I mischaracterized our conversation!)



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to