Skip to content

Commit 95920b2

Browse files
committed
[Concurrency] Fix init task group with flags availability
resolves rdar://112469076
1 parent aa397c7 commit 95920b2

File tree

4 files changed

+18
-1
lines changed

4 files changed

+18
-1
lines changed

include/swift/AST/ASTContext.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -898,6 +898,10 @@ class ASTContext final {
898898
/// Get the runtime availability of support for concurrency.
899899
AvailabilityContext getConcurrencyAvailability();
900900

901+
/// Get the runtime availability of the `DiscardingTaskGroup`,
902+
/// and supporting runtime functions function
903+
AvailabilityContext getConcurrencyDiscardingTaskGroupAvailability();
904+
901905
/// Get the back-deployed availability for concurrency.
902906
AvailabilityContext getBackDeployedConcurrencyAvailability();
903907

include/swift/Runtime/RuntimeFunctions.def

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2255,7 +2255,7 @@ FUNCTION(TaskGroupInitialize,
22552255
// void swift_taskGroup_initializeWithFlags(size_t flags, TaskGroup *group);
22562256
FUNCTION(TaskGroupInitializeWithFlags,
22572257
swift_taskGroup_initializeWithFlags, SwiftCC,
2258-
ConcurrencyAvailability,
2258+
ConcurrencyDiscardingTaskGroupAvailability,
22592259
RETURNS(VoidTy),
22602260
ARGS(SizeTy, // flags
22612261
Int8PtrTy, // group

lib/AST/Availability.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -493,6 +493,10 @@ AvailabilityContext ASTContext::getConcurrencyAvailability() {
493493
return getSwift55Availability();
494494
}
495495

496+
AvailabilityContext ASTContext::getConcurrencyDiscardingTaskGroupAvailability() {
497+
return getSwift59Availability();
498+
}
499+
496500
AvailabilityContext ASTContext::getBackDeployedConcurrencyAvailability() {
497501
return getSwift51Availability();
498502
}

lib/IRGen/IRGenModule.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -861,6 +861,15 @@ namespace RuntimeConstants {
861861
return RuntimeAvailability::AlwaysAvailable;
862862
}
863863

864+
RuntimeAvailability ConcurrencyDiscardingTaskGroupAvailability(ASTContext &context) {
865+
auto featureAvailability =
866+
context.getConcurrencyDiscardingTaskGroupAvailability();
867+
if (!isDeploymentAvailabilityContainedIn(context, featureAvailability)) {
868+
return RuntimeAvailability::ConditionallyAvailable;
869+
}
870+
return RuntimeAvailability::AlwaysAvailable;
871+
}
872+
864873
RuntimeAvailability DifferentiationAvailability(ASTContext &context) {
865874
auto featureAvailability = context.getDifferentiationAvailability();
866875
if (!isDeploymentAvailabilityContainedIn(context, featureAvailability)) {

0 commit comments

Comments
 (0)