Skip to content

Commit 72267bb

Browse files
authored
Merge pull request #82892 from swiftlang/revert-82833-remove-startSynchronously
Revert "[Concurrency] Remove deprecated `Task.startSynchronously` API"
2 parents 64157d6 + 8c4f7e9 commit 72267bb

File tree

4 files changed

+32
-2
lines changed

4 files changed

+32
-2
lines changed

stdlib/public/Concurrency/Task+immediate.swift.gyb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,25 @@ import Swift
3333
@available(SwiftStdlib 6.2, *)
3434
extension Task where Failure == ${FAILURE_TYPE} {
3535

36+
// FIXME: This method is left in place to give adopters time to switch to `immediate` but it's going
37+
// to be removed soon, since this spelling was rejected as part of SE-0472 proposal.
38+
@available(SwiftStdlib 6.2, *)
39+
@available(*, deprecated, renamed: "immediate")
40+
// Used to preserve the symbols as originally declared without `@isolated(any)` attribute on `operation:`.
41+
% if FAILURE_TYPE == "Error":
42+
@_silgen_name("$sScTss5Error_pRs_rlE18startSynchronously4name8priority_ScTyxsAA_pGSSSg_ScPSgxyYaKcntFZ")
43+
% elif FAILURE_TYPE == "Never":
44+
@_silgen_name("$sScTss5NeverORs_rlE18startSynchronously4name8priority_ScTyxABGSSSg_ScPSgxyYaKcntFZ")
45+
% end
46+
@discardableResult
47+
public static func startSynchronously(
48+
name: String? = nil,
49+
priority: TaskPriority? = nil,
50+
@_implicitSelfCapture @_inheritActorContext(always) _ operation: sending @isolated(any) @escaping () async ${THROWS} -> Success
51+
) -> Task<Success, ${FAILURE_TYPE}> {
52+
immediate(name: name, priority: priority, operation: operation)
53+
}
54+
3655
/// Create and immediately start running a new task in the context of the calling thread/task.
3756
///
3857
/// This function _starts_ the created task on the calling context.

test/Concurrency/Runtime/startImmediately.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -436,6 +436,11 @@ print("call_startSynchronously_insideActor()")
436436

437437
actor A {
438438
func f() {
439+
Task.startSynchronously(name: "hello") { print("Task.startSynchronously (\(Task.name!))") }
440+
Task.startSynchronously() { print("Task.startSynchronously") }
441+
}
442+
443+
func f2() {
439444
Task.immediate(name: "hello") { print("Task.immediate (\(Task.name!))") }
440445
Task.immediate() { print("Task.immediate") }
441446

@@ -446,10 +451,12 @@ actor A {
446451

447452
func call_startSynchronously_insideActor() async {
448453
await A().f()
454+
await A().f2()
449455
}
450456

451457
await call_startSynchronously_insideActor()
452458

453459
// CHECK-LABEL: call_startSynchronously_insideActor()
460+
// Those two definitely in this order, however the startSynchronously is not determinate
454461
// CHECK: Task.immediate
455462
// CHECK: Task.immediate { @MainActor }

test/abi/macOS/arm64/concurrency.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,8 +389,10 @@ Added: _$sScTss5NeverORszABRs_rlE4nameSSSgvgZ
389389
Added: _$sScTss5NeverORszABRs_rlE4nameSSSgvpZMV
390390
Added: _swift_task_getCurrentTaskName
391391

392-
// immediate, addImmediateTask{UnlessCancelled}
392+
// startSynchronously, immediate, addImmediateTask{UnlessCancelled}
393393
Added: _swift_task_immediate
394+
Added: _$sScTss5Error_pRs_rlE18startSynchronously4name8priority_ScTyxsAA_pGSSSg_ScPSgxyYaKcntFZ
395+
Added: _$sScTss5NeverORs_rlE18startSynchronously4name8priority_ScTyxABGSSSg_ScPSgxyYaKcntFZ
394396

395397
// isIsolatingCurrentContext
396398
Added: _swift_task_invokeSwiftIsIsolatingCurrentContext

test/abi/macOS/x86_64/concurrency.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,8 +389,10 @@ Added: _$sScTss5NeverORszABRs_rlE4nameSSSgvgZ
389389
Added: _$sScTss5NeverORszABRs_rlE4nameSSSgvpZMV
390390
Added: _swift_task_getCurrentTaskName
391391

392-
// immediate, addImmediateTask{UnlessCancelled}
392+
// startSynchronously, immediate, addImmediateTask{UnlessCancelled}
393393
Added: _swift_task_immediate
394+
Added: _$sScTss5Error_pRs_rlE18startSynchronously4name8priority_ScTyxsAA_pGSSSg_ScPSgxyYaKcntFZ
395+
Added: _$sScTss5NeverORs_rlE18startSynchronously4name8priority_ScTyxABGSSSg_ScPSgxyYaKcntFZ
394396

395397
// isIsolatingCurrentContext
396398
Added: _swift_task_invokeSwiftIsIsolatingCurrentContext

0 commit comments

Comments
 (0)