-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[Concurrency] repair cooperative global executor #39092
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
[Concurrency] repair cooperative global executor #39092
Conversation
This patch guards some includes of libdispatch headers so that platforms that doesn't support libdispatch can build cooperative executor runtime. And fixed missing implementations for cooperative mode.
@swift-ci please smoke test |
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.
LGTM, but I wonder if we should add some way to test if this mode works so we don't keep breaking it on accident?
Do we have any way to test such thing @DougGregor ?
@ktoso should the lack of tests block this PR from being merged? I'm not sure if there's any other way to test this other than adding Swift for WebAssembly target to the community CI build matrix. This "build configuration" can't be enabled with a driver flag I suppose, and we can't rebuild with different CMake flags on existing platforms, right? |
I have no problem landing this without testing in the short term, but yeah, I think it should be a goal to bring up CI to test the WebAssembly target ASAP. |
This preset will be used by community CI for WebAssembly to ensure [single-threaded-runtime mode won't be broken again](#39092 (comment)) and enable us testing IRGen for WebAssembly in upstream. Note that the current preset doesn't build stdlib for Wasm for now because some essential patches haven't been ported yet and build-script doesn't support it. But that should be enabled after that's supported. This change is a part of SR-15168.
`SWIFT_STDLIB_SINGLE_THREADED_RUNTIME` mode has been broken for a long time. This patch guards some includes and use of libdispatch headers so that platforms that doesn't support libdispatch can build cooperative executor runtime. And fixed missing implementations for cooperative mode.
SWIFT_STDLIB_SINGLE_THREADED_RUNTIME
mode has been broken for a long time.This patch guards some includes and use of libdispatch headers so that platforms
that doesn't support libdispatch can build cooperative executor runtime.
And fixed missing implementations for cooperative mode.
CC: @MaxDesiatov
Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.
Resolves SR-NNNN.