apache / arrow-julia

Official Julia implementation of Apache Arrow
https://arrow.apache.org/julia/
Other
283 stars 60 forks source link

Use wkspawn from ConcurrentUtilities instead of Threads.spawn #469

Closed quinnj closed 1 year ago

quinnj commented 1 year ago

Should fix #336.

For more context, see the same fix we made for this in CSV.jl.

Basically, objects interpolated into or returned from spawned tasks can be unexpectedly kept alive long after the task has finished and the object should have been garbage-collected due to individual threads holding the most recent task as a reference. Using @wkspawn ensures tasks themselves don't hold references to any of these once they're done executing.

codecov-commenter commented 1 year ago

Codecov Report

Merging #469 (7052a7e) into main (fc7cc2d) will decrease coverage by 0.07%. The diff coverage is 66.66%.

@@            Coverage Diff             @@
##             main     #469      +/-   ##
==========================================
- Coverage   87.56%   87.50%   -0.07%     
==========================================
  Files          26       26              
  Lines        3280     3280              
==========================================
- Hits         2872     2870       -2     
- Misses        408      410       +2     
Impacted Files Coverage Δ
src/append.jl 91.01% <50.00%> (-1.13%) :arrow_down:
src/write.jl 97.56% <50.00%> (-0.31%) :arrow_down:
src/table.jl 92.49% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more