Skip to content

[Concurrency] Remove last usages of @_unsafeInheritExecutor #73568

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

Merged
merged 4 commits into from
Jun 26, 2024

Conversation

ktoso
Copy link
Contributor

@ktoso ktoso commented May 10, 2024

Seems I missed a few usages, in task cancellation handler and task groups.

We don't want to be relying on the hacky attribute anymore, moved it all to #isolation while keeping ABI compatibility.

All usages of the attr now are only for ABI reasons:

-> % ack '@_unsafeInheritExecutor' stdlib/public
stdlib/public/Concurrency/Clock.swift
80:  @_unsafeInheritExecutor // for ABI compatibility

stdlib/public/Concurrency/TaskCancellation.swift
85:@_unsafeInheritExecutor // ABI compatibility with Swift 5.1

stdlib/public/Concurrency/DiscardingTaskGroup.swift
99:@_unsafeInheritExecutor // for ABI compatibility
777:@_unsafeInheritExecutor // for ABI compatibility

stdlib/public/Concurrency/TaskLocal.swift
220:  @_unsafeInheritExecutor // ABI compatibility with Swift 5.1
266:  @_unsafeInheritExecutor // internal for backwards compatibility; though may be able to be removed safely?

stdlib/public/Concurrency/CheckedContinuation.swift
302:@_unsafeInheritExecutor // ABI compatibility with Swift 5.1
361:@_unsafeInheritExecutor // ABI compatibility with Swift 5.1

stdlib/public/Concurrency/TaskGroup.swift
95:@_unsafeInheritExecutor // for ABI compatibility
233:@_unsafeInheritExecutor // for ABI compatibility

stdlib/public/Concurrency/Task+TaskExecutor.swift
164:@_unsafeInheritExecutor // for ABI compatibility

Related to the previous issue: rdar://125307764 and #69659

Resolves rdar://127874129

@ktoso ktoso requested a review from a team as a code owner May 10, 2024 12:06
@ktoso
Copy link
Contributor Author

ktoso commented May 10, 2024

@swift-ci please smoke test

@ktoso
Copy link
Contributor Author

ktoso commented May 13, 2024

See #73569 for discussion

Blocking on rdar://125078448

@ktoso ktoso marked this pull request as draft May 13, 2024 04:38
@ktoso ktoso force-pushed the wip-fix-last-_unsafeInheritExecutor-usage branch from b612f4f to 3e23947 Compare June 20, 2024 08:01
@ktoso ktoso requested a review from hborla June 20, 2024 08:02
@ktoso ktoso force-pushed the wip-fix-last-_unsafeInheritExecutor-usage branch from 3e23947 to d9fac04 Compare June 20, 2024 08:02
@ktoso ktoso marked this pull request as ready for review June 20, 2024 08:03
@ktoso
Copy link
Contributor Author

ktoso commented Jun 20, 2024

@swift-ci please smoke test

@ktoso ktoso force-pushed the wip-fix-last-_unsafeInheritExecutor-usage branch from d9fac04 to f9e3b6d Compare June 21, 2024 03:35
@ktoso
Copy link
Contributor Author

ktoso commented Jun 21, 2024

got caught up in repo migration

@ktoso
Copy link
Contributor Author

ktoso commented Jun 21, 2024

@swift-ci please test Linux

@ktoso
Copy link
Contributor Author

ktoso commented Jun 21, 2024

@swift-ci please clean smoke test Linux

@ktoso
Copy link
Contributor Author

ktoso commented Jun 24, 2024

1.	Swift version 6.0-dev (LLVM 897d03a12d1018f, Swift c072ade3439c3f8)
2.	Compiling with effective version 5.10
3.	While evaluating request ExecuteSILPipelineRequest(Run pipelines { Mandatory Diagnostic Passes + Enabling Optimization Passes } on SIL for SwiftExtensions)
4.	While running pass #1481 SILFunctionTransform "TransferNonSendable" on SILFunction "@$s15SwiftExtensions11withTimeoutyxs8DurationV_xyYaYbKctYaKs8SendableRzlF".
 for 'withTimeout(_:_:)' (at /home/build-user/sourcekit-lsp/Sources/SwiftExtensions/AsyncUtils.swift:175:8)

hm, seems like this regressed?


0.	Program arguments: /home/build-user/swift-nightly-install/usr/bin/swift-frontend -frontend -c /home/build-user/sourcekit-lsp/Sources/SwiftExtensions/AsyncQueue.swift /home/build-user/sourcekit-lsp/Sources/SwiftExtensions/AsyncUtils.swift /home/build-user/sourcekit-lsp/Sources/SwiftExtensions/Collection+Only.swift /home/build-user/sourcekit-lsp/Sources/SwiftExtensions/Collection+PartitionIntoBatches.swift /home/build-user/sourcekit-lsp/Sources/SwiftExtensions/NSLock+WithLock.swift /home/build-user/sourcekit-lsp/Sources/SwiftExtensions/Sequence+AsyncMap.swift /home/build-user/sourcekit-lsp/Sources/SwiftExtensions/Task+WithPriorityChangedHandler.swift /home/build-user/sourcekit-lsp/Sources/SwiftExtensions/ThreadSafeBox.swift -supplementary-output-file-map /tmp/TemporaryDirectory.1wbYY8/supplementaryOutputs-1 -target x86_64-unknown-linux-gnu -disable-objc-interop -I /home/build-user/build/buildbot_linux/unified-swiftpm-build-linux-x86_64/x86_64-unknown-linux-gnu/release/Modules -g -debug-info-format=dwarf -dwarf-version=4 -module-cache-path /home/build-user/build/buildbot_linux/unified-swiftpm-build-linux-x86_64/x86_64-unknown-linux-gnu/release/ModuleCache -swift-version 5 -O -D SWIFT_PACKAGE -enable-upcoming-feature StrictConcurrency -enable-upcoming-feature RegionBasedIsolation -enable-upcoming-feature InferSendableFromCaptures -empty-abi-descriptor -Xcc -working-directory -Xcc /home/build-user/sourcekit-lsp -resource-dir /home/build-user/swift-nightly-install/usr/lib/swift -file-compilation-dir /home/build-user/sourcekit-lsp -Xcc -fPIC -Xcc -g -Xcc -fno-omit-frame-pointer -module-name SwiftExtensions -plugin-path /home/build-user/swift-nightly-install/usr/lib/swift/host/plugins -plugin-path /home/build-user/swift-nightly-install/usr/local/lib/swift/host/plugins -enable-default-cmo -parse-as-library -num-threads 36 -o /home/build-user/build/buildbot_linux/unified-swiftpm-build-linux-x86_64/x86_64-unknown-linux-gnu/release/SwiftExtensions.build/AsyncQueue.swift.o -o /home/build-user/build/buildbot_linux/unified-swiftpm-build-linux-x86_64/x86_64-unknown-linux-gnu/release/SwiftExtensions.build/AsyncUtils.swift.o -o /home/build-user/build/buildbot_linux/unified-swiftpm-build-linux-x86_64/x86_64-unknown-linux-gnu/release/SwiftExtensions.build/Collection+Only.swift.o -o /home/build-user/build/buildbot_linux/unified-swiftpm-build-linux-x86_64/x86_64-unknown-linux-gnu/release/SwiftExtensions.build/Collection+PartitionIntoBatches.swift.o -o /home/build-user/build/buildbot_linux/unified-swiftpm-build-linux-x86_64/x86_64-unknown-linux-gnu/release/SwiftExtensions.build/NSLock+WithLock.swift.o -o /home/build-user/build/buildbot_linux/unified-swiftpm-build-linux-x86_64/x86_64-unknown-linux-gnu/release/SwiftExtensions.build/Sequence+AsyncMap.swift.o -o /home/build-user/build/buildbot_linux/unified-swiftpm-build-linux-x86_64/x86_64-unknown-linux-gnu/release/SwiftExtensions.build/Task+WithPriorityChangedHandler.swift.o -o /home/build-user/build/buildbot_linux/unified-swiftpm-build-linux-x86_64/x86_64-unknown-linux-gnu/release/SwiftExtensions.build/ThreadSafeBox.swift.o
1.	Swift version 6.0-dev (LLVM 897d03a12d1018f, Swift c072ade3439c3f8)
2.	Compiling with effective version 5.10
3.	While evaluating request ExecuteSILPipelineRequest(Run pipelines { Mandatory Diagnostic Passes + Enabling Optimization Passes } on SIL for SwiftExtensions)
4.	While running pass #1481 SILFunctionTransform "TransferNonSendable" on SILFunction "@$s15SwiftExtensions11withTimeoutyxs8DurationV_xyYaYbKctYaKs8SendableRzlF".
 for 'withTimeout(_:_:)' (at /home/build-user/sourcekit-lsp/Sources/SwiftExtensions/AsyncUtils.swift:175:8)
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  swift-frontend  0x000055b69923ba17
1  swift-frontend  0x000055b69923971e
2  swift-frontend  0x000055b69923c08f
3  libpthread.so.0 0x00007f5792c8b420
4  libc.so.6       0x00007f57910f200b gsignal + 203
5  libc.so.6       0x00007f57910d1859 abort + 299
6  swift-frontend  0x000055b692e9b517
7  swift-frontend  0x000055b692e9991c
8  swift-frontend  0x000055b692e89470
9  swift-frontend  0x000055b692e87352
10 swift-frontend  0x000055b692e7f4db
11 swift-frontend  0x000055b692ea2b3e
12 swift-frontend  0x000055b692ea2a4e
13 swift-frontend  0x000055b692e80fd4
14 swift-frontend  0x000055b692e85638
15 swift-frontend  0x000055b692fe56d4
16 swift-frontend  0x000055b692fe53ec
17 swift-frontend  0x000055b692df54b8
18 swift-frontend  0x000055b692df67a1
19 swift-frontend  0x000055b692df9a0c
20 swift-frontend  0x000055b692df31a8
21 swift-frontend  0x000055b692df315d
22 swift-frontend  0x000055b693173ada
23 swift-frontend  0x000055b692e1a675
24 swift-frontend  0x000055b692df33ad
25 swift-frontend  0x000055b693160721
26 swift-frontend  0x000055b6927cb4d7
27 swift-frontend  0x000055b6924881c7
28 swift-frontend  0x000055b6924873ea
29 swift-frontend  0x000055b69249e359
30 swift-frontend  0x000055b69248b185
31 swift-frontend  0x000055b692489483
32 swift-frontend  0x000055b6922390c4
33 libc.so.6       0x00007f57910d3083 __libc_start_main + 243
34 swift-frontend  0x000055b69223816e
[76/579] Compiling llvmSupport MD5.cpp
[77/579] Compiling llbuildNinja Parser.cpp
[77/579] Compiling llvmSupport DJB.cpp
[77/579] Compiling llvmSupport Debug.cpp
[77/579] Compiling llvmSupport APSInt.cpp
[77/579] Compiling llvmDemangle MicrosoftDemangle.cpp
[77/579] Compiling llvmDemangle ItaniumDemangle.cpp
[77/579] Compiling llbuildNinja ManifestLoader.cpp
[77/579] Compiling llbuildNinja Manifest.cpp
[77/579] Compiling llvmSupport APInt.cpp
[77/579] Compiling llvmSupport APFloat.cpp
[77/579] Compiling llvmSupport Allocator.cpp
[77/579] Compiling llvmSupport CommandLine.cpp
[77/579] Compiling llvmSupport ConvertUTFWrapper.cpp
[77/579] Compiling llvmSupport ConvertUTF.cpp
[77/579] Compiling llvmSupport Chrono.cpp
[77/579] Compiling llvmSupport TargetParser.cpp
[77/579] Compiling llvmSupport FileUtilities.cpp
[77/579] Compiling llvmSupport YAMLParser.cpp
[77/579] Compiling llvmSupport MemoryBuffer.cpp
[77/579] Compiling llvmSupport StringRef.cpp
[77/579] Compiling llvmSupport Triple.cpp
[77/579] Compiling llvmSupport Signals.cpp
[77/579] Compiling llvmSupport Host.cpp
[77/579] Compiling llvmSupport raw_ostream.cpp
[77/579] Compiling llvmSupport Error.cpp
[77/579] Compiling llvmSupport Process.cpp
[77/579] Compiling llvmSupport SourceMgr.cpp
[77/579] Compiling llvmSupport Path.cpp
[77/579] Compiling llvmSupport Program.cpp

https://ci.swift.org/job/swift-PR-Linux/15926/console

@ktoso ktoso force-pushed the wip-fix-last-_unsafeInheritExecutor-usage branch from f9e3b6d to c413893 Compare June 24, 2024 04:09
@ktoso
Copy link
Contributor Author

ktoso commented Jun 24, 2024

@swift-ci please smoke test

1 similar comment
@ktoso
Copy link
Contributor Author

ktoso commented Jun 26, 2024

@swift-ci please smoke test

@ktoso ktoso merged commit 8bc5373 into swiftlang:main Jun 26, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant