Tracked from the Dart binding review log on the dart branch (#187).
ResourceRequestToken is isolate-sendable and may have independent copies. The native registry releases it on explicit completion or close, but cannot identify when every Dart copy has been lost. A finalizer on one copy could terminate a request still owned by another isolate, and making the token Finalizable would make it unsendable — Dart refuses to send Finalizable instances across isolate boundaries.
The same tension produced a second, narrower gap tracked separately: WakeSource drops leak reporting entirely to stay transferable.
Suggested next step: design registry-backed alias leases, or an explicit transfer protocol with deterministic last-owner reporting.
Area: owned-handle leak reporting. Severity: medium. Complexity: high.
Tracked from the Dart binding review log on the
dartbranch (#187).ResourceRequestTokenis isolate-sendable and may have independent copies. The native registry releases it on explicit completion or close, but cannot identify when every Dart copy has been lost. A finalizer on one copy could terminate a request still owned by another isolate, and making the tokenFinalizablewould make it unsendable — Dart refuses to sendFinalizableinstances across isolate boundaries.The same tension produced a second, narrower gap tracked separately:
WakeSourcedrops leak reporting entirely to stay transferable.Suggested next step: design registry-backed alias leases, or an explicit transfer protocol with deterministic last-owner reporting.
Area: owned-handle leak reporting. Severity: medium. Complexity: high.