Skip to content

Commit 93890fa

Browse files
committed
[Concurrency] Fix init task group with flags availability
resolves rdar://112469076
1 parent 8e5e85a commit 93890fa

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
@@ -892,6 +892,10 @@ class ASTContext final {
892892
/// Get the runtime availability of support for concurrency.
893893
AvailabilityContext getConcurrencyAvailability();
894894

895+
/// Get the runtime availability of the `DiscardingTaskGroup`,
896+
/// and supporting runtime functions function
897+
AvailabilityContext getConcurrencyDiscardingTaskGroupAvailability();
898+
895899
/// Get the back-deployed availability for concurrency.
896900
AvailabilityContext getBackDeployedConcurrencyAvailability();
897901

include/swift/Runtime/RuntimeFunctions.def

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2217,7 +2217,7 @@ FUNCTION(TaskGroupInitialize,
22172217
// void swift_taskGroup_initializeWithFlags(size_t flags, TaskGroup *group);
22182218
FUNCTION(TaskGroupInitializeWithFlags,
22192219
swift_taskGroup_initializeWithFlags, SwiftCC,
2220-
ConcurrencyAvailability,
2220+
ConcurrencyDiscardingTaskGroupAvailability,
22212221
RETURNS(VoidTy),
22222222
ARGS(SizeTy, // flags
22232223
Int8PtrTy, // group

lib/AST/Availability.cpp

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

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

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)