Move sleep slicing from musl's __wait to the lower level emscripten_futex_wait. NFC#26471
Merged
sbc100 merged 1 commit intoemscripten-core:mainfrom Mar 20, 2026
Conversation
65227c2 to
dc4a6db
Compare
sbc100
commented
Mar 18, 2026
dc4a6db to
c83cec6
Compare
This was referenced Mar 18, 2026
c83cec6 to
56c46cb
Compare
kripken
reviewed
Mar 18, 2026
kripken
reviewed
Mar 18, 2026
Collaborator
Author
d025d13 to
ee3f1b4
Compare
Collaborator
Author
|
I had gemini CLI go over potentially issues with this PR and it found a few subtle issues with the slicing.. all of which are now fixed. |
ee3f1b4 to
dba24ed
Compare
tlively
reviewed
Mar 19, 2026
dba24ed to
a44b167
Compare
Collaborator
Author
|
I'd love to land this (and the followup #26487) today if possible. WDYT? |
a44b167 to
78b5c64
Compare
dschuff
approved these changes
Mar 20, 2026
…n_futex_wait`. NFC This means we only need to do this breaking up on our `wait` operations in a single place. It also means that other users the `emscripten_futex_wait` API don't break pthread proxying or async cancellation. The moved code is only included in pthread-enabled builds so should not effect Wasm Workers builders. This change also paves the way for enabling musl's `__wait` to work with `WASM_WORKERS`.
78b5c64 to
a2f1a06
Compare
sbc100
added a commit
that referenced
this pull request
Mar 20, 2026
Remove remaining pthread function from WASM_WORKERS build. NFC This includes `pthread_self`, along with the internal `__get_tp` function on which its bases. These are not valid to call in Wasm Workers. This PR is currently stacked on top of #26471
sbc100
added a commit
to sbc100/emscripten
that referenced
this pull request
Mar 20, 2026
This should have been part of emscripten-core#26471. The breaking up of the wait time for 2 of the 3 cases that are handled here is now handled one layer own in emscripten_futex_wait: 1. Breaking up the wait because we are the main runtime thread. 2. Breaking up the wait because we are async cancelable. The third cases here (breaking up the wait because we are cancelable in the non-async sense) still needs to be handled here at the higher level.
sbc100
added a commit
to sbc100/emscripten
that referenced
this pull request
Mar 20, 2026
This should have been part of emscripten-core#26471. The breaking up of the wait time for 2 of the 3 cases that are handled here is now handled one layer own in emscripten_futex_wait: 1. Breaking up the wait because we are the main runtime thread. 2. Breaking up the wait because we are async cancelable. The third cases here (breaking up the wait because we are cancelable in the non-async sense) still needs to be handled here at the higher level.
sbc100
added a commit
to sbc100/emscripten
that referenced
this pull request
Mar 21, 2026
This should have been part of emscripten-core#26471. The breaking up of the wait time for 2 of the 3 cases that are handled here is now handled one layer own in emscripten_futex_wait: 1. Breaking up the wait because we are the main runtime thread. 2. Breaking up the wait because we are async cancelable. The third cases here (breaking up the wait because we are cancelable in the non-async sense) still needs to be handled here at the higher level.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This reduces the number of places we need to breaking up our
waitoperation. It also means that other users theemscripten_futex_waitAPI don't break pthread proxying or async cancellation.This change removes one more place where we were erroneously calling
pthread_self()in the Wasm Workers build of libc, so this change also makes the code less broken in the Wasm Worker case.Needed as part of #26487