-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Concurrency: avoid CFRunLoopRun
on non-Darwin
#35585
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
Conversation
The CoreFoundation implementation on non-Darwin platforms included in Foundation is not meant to be used as a general purpose CoreFoundation implementation. Since non-Darwin targets do not default to providing a CoreFoundation implementation, we should generally assume that the symbol is not present. This changes the non-Darwin paths to always use `dispatch_main` rather than `CFRunLoopRun`.
CC: @etcwilde |
@swift-ci please test |
CC: @millenomi |
cc @phausler — will this compromise anything because of the different entry point? |
Build failed |
This seems reasonable to me, there are some sneaky side effects here to consider.
I would like to see a unified approach for all platforms but sadly I don't think we can avoid calling the CF API. |
@swift-ci please smoke test macOS platform |
@swift-ci please test macOS platform |
Build failed |
@swift-ci please test |
Build failed |
@swift-ci please test |
The CoreFoundation implementation on non-Darwin platforms included in
Foundation is not meant to be used as a general purpose CoreFoundation
implementation. Since non-Darwin targets do not default to providing a
CoreFoundation implementation, we should generally assume that the
symbol is not present. This changes the non-Darwin paths to always use
dispatch_main
rather thanCFRunLoopRun
.Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.
Resolves SR-NNNN.