Files
swift-mirror/test/Concurrency/Runtime/executor_deinit2.swift
2025-08-21 12:54:00 -07:00

41 lines
1.1 KiB
Swift

// RUN: %target-run-simple-swift(-parse-as-library -target %target-swift-5.1-abi-triple) | %FileCheck %s
// RUN: %target-run-simple-swift(-parse-as-library -target %target-swift-5.1-abi-triple -swift-version 5 -strict-concurrency=complete -enable-upcoming-feature NonisolatedNonsendingByDefault) | %FileCheck %s
// REQUIRES: swift_feature_NonisolatedNonsendingByDefault
// REQUIRES: executable_test
// REQUIRES: concurrency
// UNSUPPORTED: freestanding
// rdar://76038845
// REQUIRES: concurrency_runtime
// UNSUPPORTED: back_deployment_runtime
// this needs to match with the check count below.
let NUM_TASKS : Int = 100
@available(SwiftStdlib 5.1, *)
final class Capture : Sendable {
func doSomething() { }
deinit {
// CHECK-COUNT-100: deinit was called!
print("deinit was called!")
}
}
@available(SwiftStdlib 5.1, *)
@main
struct App {
static func main() async {
var n = 0
for _ in 1...NUM_TASKS {
let c = Capture()
let r = detach {
c.doSomething()
}
await r.get()
n += 1
}
print("test complete")
}
}