emscripten-core/emscripten

Use WeakRefs in event handlers?

オープン

#9,820 opened on 2019/11/11

 (3 件のコメント) (0 件のリアクション) (0 人の担当者)C++ (3,519 件のフォーク)batch import
good first bughelp wanted

Repository metrics

Stars
 (27,361 個のスター)
PR merge metrics
 (平均マージ 19d 10h) (30d で 147 merged PRs)

説明

See e.g. https://github.com/emscripten-core/emscripten/issues/5456#issuecomment-552005331 and other reports in the past. If one creates event handlers then the module cannot be GC'd even if nothing but the event handlers refers to it. The handlers must be unregistered manually.

If all event handlers used a WeakRef to everything else, then the module can be gc'd, and then the event handler can see it can just exit (and unregister itself).

As WeakRefs are not supported everywhere yet, we'd need to check for their presence.

I'm not sure if this would need to be an option or not. Doing it automatically would help some things, but maybe some codebases do want to stay alive due to event handlers.

コントリビューターガイド