跳到內容

在某些情況下,返回 nanoarrow_array_stream 的 R 函數可能需要某些其他物件的 scope 比陣列串流的 scope 更長壽。如果需要確定性地釋放該物件(例如,關閉開啟的檔案),您可以註冊一個函數,使其在從 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!