-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
[wasm-mt] Allow JSImport promises to run on managed threadpool worker threads #83838
[wasm-mt] Allow JSImport promises to run on managed threadpool worker threads #83838
Commits on Mar 27, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 33b5c4a - Browse repository at this point
Copy the full SHA 33b5c4aView commit details -
Configuration menu - View commit details
-
Copy full SHA for dff44d4 - Browse repository at this point
Copy the full SHA dff44d4View commit details -
Configuration menu - View commit details
-
Copy full SHA for ce1a265 - Browse repository at this point
Copy the full SHA ce1a265View commit details -
Configuration menu - View commit details
-
Copy full SHA for ed96a04 - Browse repository at this point
Copy the full SHA ed96a04View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8e6a28c - Browse repository at this point
Copy the full SHA 8e6a28cView commit details
Commits on Mar 28, 2023
-
This should fix these errors: [wasm test] [23:10:04] dbug: Reached wasm exit [wasm test] [23:10:04] info: node:internal/process/promises:246 [wasm test] [23:10:04] info: triggerUncaughtException(err, true /* fromPromise */); [wasm test] [23:10:04] info: ^ [wasm test] [23:10:04] info: [wasm test] [23:10:04] info: [UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason "#<ExitStatus>".] { [wasm test] [23:10:04] info: code: 'ERR_UNHANDLED_REJECTION' [wasm test] [23:10:04] info: } [wasm test] [23:10:04] info: [wasm test] [23:10:04] info: Node.js v17.3.1 [wasm test] [23:10:04] info: Process node.exe exited with 1
Configuration menu - View commit details
-
Copy full SHA for 81672f4 - Browse repository at this point
Copy the full SHA 81672f4View commit details -
Configuration menu - View commit details
-
Copy full SHA for c2cbb94 - Browse repository at this point
Copy the full SHA c2cbb94View commit details -
Configuration menu - View commit details
-
Copy full SHA for f3edd6e - Browse repository at this point
Copy the full SHA f3edd6eView commit details -
[wasm][threads] flip YieldFromDispatchLoop; specialize PortableThread…
…Pool.WorkerThread
Configuration menu - View commit details
-
Copy full SHA for 4c0cb9e - Browse repository at this point
Copy the full SHA 4c0cb9eView commit details -
[mono] Implement a LifoJSSemaphore
This is a LIFO semaphore with an asynchronous wait that triggers callbacks on the JS event loop in case of Release or timeout.
Configuration menu - View commit details
-
Copy full SHA for 3d88608 - Browse repository at this point
Copy the full SHA 3d88608View commit details -
Configuration menu - View commit details
-
Copy full SHA for 55b4649 - Browse repository at this point
Copy the full SHA 55b4649View commit details -
copy-paste PortableThreadPool.WorkerThread for threaded WASM
no changes yet. just copying verbatim to a separate file
Configuration menu - View commit details
-
Copy full SHA for 8c74dea - Browse repository at this point
Copy the full SHA 8c74deaView commit details -
Configuration menu - View commit details
-
Copy full SHA for b323f0e - Browse repository at this point
Copy the full SHA b323f0eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 51b1fbf - Browse repository at this point
Copy the full SHA 51b1fbfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3727ff1 - Browse repository at this point
Copy the full SHA 3727ff1View commit details -
manage emscripten event loop from PortableThreadPool.WorkerThread
make sure to keep the thread alive after setting up the semaphore wait. Cleanup the thread when exiting
Configuration menu - View commit details
-
Copy full SHA for 763edab - Browse repository at this point
Copy the full SHA 763edabView commit details -
Configuration menu - View commit details
-
Copy full SHA for b45d001 - Browse repository at this point
Copy the full SHA b45d001View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1f7620c - Browse repository at this point
Copy the full SHA 1f7620cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 06a3cc1 - Browse repository at this point
Copy the full SHA 06a3cc1View commit details -
nit: log thread id as hex in .ts
Match the C logging for easier grepping
Configuration menu - View commit details
-
Copy full SHA for 8574368 - Browse repository at this point
Copy the full SHA 8574368View commit details -
Configuration menu - View commit details
-
Copy full SHA for c86cb26 - Browse repository at this point
Copy the full SHA c86cb26View commit details -
Configuration menu - View commit details
-
Copy full SHA for c3cad74 - Browse repository at this point
Copy the full SHA c3cad74View commit details -
Add WebWorkerEventLoop internal class to managed event loop keepalive
Don't explicitly call UnwindToJs as it doesn't know about managed code. Also avoid mono_thread_exit as that also won't necessarily clean up after the interpreter
Configuration menu - View commit details
-
Copy full SHA for e57b262 - Browse repository at this point
Copy the full SHA e57b262View commit details -
Start threadpool threads with keepalive checks
Add a flag to mono's thread start wrappers to keep track of threads that may not want cleanup to run after the Start function returns. Use the flag when starting threadpool threads.
Configuration menu - View commit details
-
Copy full SHA for 07eabcd - Browse repository at this point
Copy the full SHA 07eabcdView commit details -
HACK: kind of work around the emscripten_runtime_keepalive_push/pop n…
…o-op Keep a thread local counter in mono. that we "know" will be right for us and manually call unwind_to_js and thread_exit. This is super-fragile since we don't know what emscripten internals might be trying to manipulate the keepalive count and also we are exiting the thread with active managed frames, so we might be skipping finally clauses and possibly leaking interpreter memory. This is mainly meant to keep work going on this branch and not something we necessarily want to commit
Configuration menu - View commit details
-
Copy full SHA for 474607e - Browse repository at this point
Copy the full SHA 474607eView commit details -
support JS Semaphore with --print-icall-table cross compiler
fixes smoketest on Release builds
Configuration menu - View commit details
-
Copy full SHA for 9f45167 - Browse repository at this point
Copy the full SHA 9f45167View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2e1f31f - Browse repository at this point
Copy the full SHA 2e1f31fView commit details
Commits on Mar 30, 2023
-
Share PortableThreadPool.WorkerThread common code
Share the code between non-browser implementations and browser+threads. The differences are just in how the work loop is started and implemented
Configuration menu - View commit details
-
Copy full SHA for dacc0cb - Browse repository at this point
Copy the full SHA dacc0cbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 10ca330 - Browse repository at this point
Copy the full SHA 10ca330View commit details
Commits on Mar 31, 2023
-
Configuration menu - View commit details
-
Copy full SHA for f4a2c02 - Browse repository at this point
Copy the full SHA f4a2c02View commit details -
Configuration menu - View commit details
-
Copy full SHA for 42388d8 - Browse repository at this point
Copy the full SHA 42388d8View commit details -
remove unused arg from async wait semaphore
don't need both user data and a gchandle
Configuration menu - View commit details
-
Copy full SHA for 853938e - Browse repository at this point
Copy the full SHA 853938eView commit details -
rename native semaphore to LifoSemaphoreAsyncWait
prefix functions with mono_lifo_semaphore_asyncwait_
Configuration menu - View commit details
-
Copy full SHA for cb8b168 - Browse repository at this point
Copy the full SHA cb8b168View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3e8fee4 - Browse repository at this point
Copy the full SHA 3e8fee4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 552f9a5 - Browse repository at this point
Copy the full SHA 552f9a5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 812524f - Browse repository at this point
Copy the full SHA 812524fView commit details
Commits on Apr 3, 2023
-
Keep track of unsettled JS interop promises in threadpool workers
Set WorkerThread.IsIOPending when the current thread has unsettled JS interop promises. When IsIOPending is true, the worker will not exit even if it has no more work to do. Instead it will repeatedly wait for more work to arrive or for all promises to settle.
Configuration menu - View commit details
-
Copy full SHA for 50c0f1a - Browse repository at this point
Copy the full SHA 50c0f1aView commit details -
change minimal sample's fetch helper to artificially delay
the delay is longer that the threadpool worker's semaphore timeout, in order to validate that the worker stays alive while there are unsettled promises
Configuration menu - View commit details
-
Copy full SHA for c8afaba - Browse repository at this point
Copy the full SHA c8afabaView commit details