跳过内容

在某些情况下,返回 nanoarrow_array_stream 的 R 函数可能要求某个其他对象的生命周期长于数组流。如果需要确定性地释放该对象(例如,关闭打开的文件),您可以注册一个函数,使其在流的释放回调从 R 线程调用后运行。请注意,如果流的释放回调从 R 线程调用,则此终结器将不会运行。在这种情况下,终结器及其环境链将在 nanoarrow:::preserved_empty() 运行时被垃圾回收。

用法

array_stream_set_finalizer(array_stream, finalizer)

参数

array_stream

一个 nanoarrow_array_stream

finalizer

一个将以零参数调用的函数。

返回值

一个新分配的 array_stream,其释放回调将调用所提供的终结器。

示例

stream <- array_stream_set_finalizer(
  basic_array_stream(list(1:5)),
  function() message("All done!")
)
stream$release()
#> All done!