Я получаю эту ошибку в нескольких местах моего кода при закрытии задачи после установки Swift 6 в качестве языковой версии в XCode.
Passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
Ниже приведен минимально воспроизводимый пример кода.
import Foundation
final class Recorder {
var writer = Writer()
func startRecording() {
Task {
await writer.startRecording()
print("started recording")
}
}
func stopRecording() {
Task {
await writer.stopRecording()
print("stopped recording")
}
}
}
actor Writer {
var isRecording = false
func startRecording() {
isRecording = true
}
func stopRecording() {
isRecording = false
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... ng-closure