You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ffi: Fast API functions and their DynamicLibrary are pinned by V8's template instantiation cache #67176
How often does it reproduce? Is there a required condition?
Always
What is the expected behavior? Why is that the expected behavior?
Fast API, [f64, f64] (no JS wrapper) function collected: true library collected: trueFast API, [i32, i32] (JS wrapper) function collected: true library collected: trueFast API, zero args function collected: true library collected: trueShared buffer ([function, pointer]) function collected: true library collected: true
After all user references are dropped, the function and its DynamicLibrary should both be collectable. Collection should then dlclose the library and unmap the per-function executable trampoline page.
What do you see instead?
Fast API, [f64, f64] (no JS wrapper) function collected: false library collected: falseFast API, [i32, i32] (JS wrapper) function collected: true library collected: falseFast API, zero args function collected: false library collected: falseShared buffer ([function, pointer]) function collected: true library collected: true
In the [i32, i32] case, only the JS wrapper is collected; the raw function stays alive.
Activity