-
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] deputy thread #98118
[browser][MT] deputy thread #98118
Conversation
Tagging subscribers to 'arch-wasm': @lewing Issue Detailsnull
|
d3249e5
to
b47568b
Compare
145b59f
to
cf52083
Compare
This comment was marked as outdated.
This comment was marked as outdated.
cf52083
to
f1a8883
Compare
f1a8883
to
0baecfb
Compare
978c8b8
to
cdc2135
Compare
/azp run runtime-wasm |
Azure Pipelines successfully started running 1 pipeline(s). |
6fe71bb
to
edf321d
Compare
275b7e2
to
ecbb5a2
Compare
/azp run runtime-wasm |
Azure Pipelines successfully started running 1 pipeline(s). |
NoSyncJSInterop = 0, | ||
// allow non-re-entrant synchronous blocking calls to and from JS on JSWebWorker on threads with JS interop, like JSWebWorker and Main thread. | ||
// calling synchronous JSImport on thread pool or new threads is allowed. | ||
SimpleSynchronousJSInterop = 1, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should come with a better name (before api review?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@lewing also didn't like it. Please come up with suggestions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm voting for longer and more descriptive name, "simple" has too much meanings
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- SingleSynchronousCallChainJSInterop
- SingleSynchronousCallJSInterop
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SingleSynchronousCallJSInterop
is not bad, I like it
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
BTW: those would not be visible on C# API, just JS config
...itTests/BackgroundExec/System.Runtime.InteropServices.JavaScript.BackgroundExec.Tests.csproj
Show resolved
Hide resolved
/azp run runtime-wasm |
Azure Pipelines successfully started running 1 pipeline(s). |
Active Issue dotnet#98771
/azp run runtime-wasm |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-wasm |
Azure Pipelines successfully started running 1 pipeline(s). |
Threading modes
multi-threading.md
JSProxyContext.ThreadBlockingMode
flowing fromconfig.
ThrowOnBlockingWaitOnJSInteropThread
behaviorJSProxyContext.ThreadInteropMode
JSImport
andJSExport
JSProxyContext.IsPendingSynchronousCall
BeforeSyncJSExport
andAfterSyncJSExport
to recognize start/end of incoming syncJSImport
call.mono_wasm_invoke_jsexport_sync_send_cb
calls itmono_wasm_install_js_worker_interop_wrapper
helps with the setup of it.args.CallerNativeTID
to see if theJSImport
caller is the same thread.runtimeHelpers.isPendingSynchronousCall
when are sameget_caller_native_tid
to read thatJSProxyContext.MainThreadingMode
JSThreadBlockingMode
andJSThreadInteropMode
andMainThreadingMode
Deputy creation
mono_wasm_create_deputy_thread
mono_wasm_register_ui_thread
testing
System.Runtime.InteropServices.JavaScript.BackgroundExec.Tests.csproj
IsWasmBackgroundExec
passed to unit tests