-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[browser][MT] JS Interop should respect GC pauses #76963
Comments
Tagging subscribers to this area: @dotnet/gc Issue Detailsnull
|
Tagging subscribers to 'arch-wasm': @lewing Issue DetailsBlock threads (esp the main thread) from entering the runtime from the JS event loop when a GC Stop-The-World is active. The thread should safepoint in native, or (better) somehow defer its work and return to the JS event loop
|
@lambdageek what is the state of this cc @pavelsavara |
Basically wishlist. I think we have GC Unsafe transitions on all the places where JS runtime code enters native. And managed code has transitions on the native-to- managed wrappers, so calling managed from JS will likewise safepoint. So the remaining part of this is to design something new that is Promise-aware so that async apis can wait in JS instead of blocking. |
|
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
Tagging subscribers to this area: @BrzVlad Issue DetailsBlock threads (esp the main thread) from entering the runtime from the JS event loop when a GC Stop-The-World is active. The thread should safepoint in native, or (better) somehow defer its work and return to the JS event loop
|
cc @steveisok |
If we are able to detach the UI thread from Mono, it would be preferable solution of this problem. See #100411 |
To be able to postpone calls to |
Block threads (esp the main thread) from entering the runtime from the JS event loop when a GC Stop-The-World is active.
The thread should safepoint in native, or (better) somehow defer its work and return to the JS event loop
Current offenders are
init_managed_exports
mono_wasm_gc_lock
,mono_wasm_gc_unlock
used by Blazormono_wasm_read_as_bool_or_null_unsafe
used by BlazorThe text was updated successfully, but these errors were encountered: