Skip to content

Commit ce8aace

Browse files
committed
fix abi
1 parent 2652862 commit ce8aace

File tree

2 files changed

+13
-29
lines changed

2 files changed

+13
-29
lines changed

include/swift/ABI/MetadataValues.h

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2401,13 +2401,6 @@ class TaskGroupFlags : public FlagSet<uint32_t> {
24012401
setIsDiscardResults)
24022402
};
24032403

2404-
/// Kinds of task group option records that can be passed to creating a task group.
2405-
enum class TaskGroupOptionRecordKind : uint8_t {
2406-
/// Request that the task group immediately releases completed tasks,
2407-
/// and discard their results.
2408-
DiscardResults = 0,
2409-
};
2410-
24112404
/// Flags for cancellation records.
24122405
class TaskStatusRecordFlags : public FlagSet<size_t> {
24132406
public:
@@ -2444,24 +2437,6 @@ class TaskOptionRecordFlags : public FlagSet<size_t> {
24442437
getKind, setKind)
24452438
};
24462439

2447-
/// Flags for task group option records.
2448-
class TaskGroupOptionRecordFlags : public FlagSet<size_t> {
2449-
public:
2450-
enum {
2451-
Kind = 0,
2452-
Kind_width = 8,
2453-
};
2454-
2455-
explicit TaskGroupOptionRecordFlags(size_t bits) : FlagSet(bits) {}
2456-
constexpr TaskGroupOptionRecordFlags() {}
2457-
TaskGroupOptionRecordFlags(TaskGroupOptionRecordKind kind) {
2458-
setKind(kind);
2459-
}
2460-
2461-
FLAGSET_DEFINE_FIELD_ACCESSORS(Kind, Kind_width, TaskGroupOptionRecordKind,
2462-
getKind, setKind)
2463-
};
2464-
24652440
/// Flags passed to swift_continuation_init.
24662441
class AsyncContinuationFlags : public FlagSet<size_t> {
24672442
public:

stdlib/public/Concurrency/TaskGroup.swift

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -639,12 +639,17 @@ public struct ThrowingTaskGroup<ChildTaskResult: Sendable, Failure: Error> {
639639
@usableFromInline
640640
@available(*, deprecated, message: "Use `awaitAllRemainingTasksThrowing`, since 5.8 with discardResults draining may throw")
641641
internal mutating func awaitAllRemainingTasks() async {
642-
// We discard the error because in old code, which may have inlined this `awaitAllRemainingTasks`
643-
// method, draining was never going to throw
644-
_ = try? await awaitAllRemainingTasksThrowing(childFailureCancelsGroup: false)
642+
while true {
643+
do {
644+
guard let _ = try await next() else {
645+
return
646+
}
647+
} catch {}
648+
}
645649
}
646650

647651
/// Await all the remaining tasks on this group.
652+
@available(SwiftStdlib 5.8, *)
648653
@usableFromInline
649654
internal mutating func awaitAllRemainingTasksThrowing(childFailureCancelsGroup: Bool) async throws {
650655
/// Since 5.8, we implement "wait for all pending tasks to complete"
@@ -679,7 +684,11 @@ public struct ThrowingTaskGroup<ChildTaskResult: Sendable, Failure: Error> {
679684
/// - Throws: only during
680685
@_alwaysEmitIntoClient
681686
public mutating func waitForAll() async throws {
682-
try await self.awaitAllRemainingTasksThrowing(childFailureCancelsGroup: false)
687+
if #available(macOS 9999, iOS 9999, watchOS 9999, tvOS 9999, *) {
688+
try await self.awaitAllRemainingTasksThrowing(childFailureCancelsGroup: false)
689+
} else {
690+
await self.awaitAllRemainingTasks()
691+
}
683692
}
684693

685694
#if !SWIFT_STDLIB_TASK_TO_THREAD_MODEL_CONCURRENCY

0 commit comments

Comments
 (0)