Метод actor приостановился на await: какое свойство его состояния нельзя считать сохранённым после возобновления?
База Hintsage
Конкурентность
async/await, actors, tasks и безопасность данных.
Практика
Вопросы: Конкурентность
Какую гарантию даёт Sendable при передаче значения между конкурентными задачами Swift?
Практическая ситуация: задача Swift получила сигнал отмены — что гарантирует сам факт отмены её немедленной остановке?
Что произойдёт с изоляцией текущего актора, если внутри его метода создать обычную Task вместо Task.detached?
Какой жизненный цикл имеет задача, созданная через async let, относительно области видимости родителя?
Насколько actor защищает изменяемый ссылочный объект после его возврата вызывающему коду?
Всегда ли actor выполняет изолированные вызовы в порядке их поступления?
В throwing task group одна дочерняя задача завершилась ошибкой, но родитель ещё не ожидает результат группы: что происходит с остальными дочерними задачами?
В приложении состояние экрана помечено @MainActor, но к нему обращаются из фоновой async-задачи: какую гарантию даёт такая изоляция?
Разбор ошибки: метод actor объявлен nonisolated, но обращается к изменяемому состоянию — какое правило изоляции здесь нарушено?
Сохраняет ли actor атомарность составной операции, если её реализация содержит await?
Функция запускает обычную Task и сразу возвращает управление: кто отвечает за её отмену?
Представьте не изолированную async-функцию, начавшуюся на главном потоке: обязана ли она продолжить выполнение после await на том же потоке?
При запуске Task.detached из дочерней задачи какое поведение task-local значения нужно ожидать?
Объясните механизм, из-за которого синхронная блокирующая операция внутри async-задачи может остановить прогресс других задач.
Разбор ошибки: почему Swift запрещает параллельным задачам напрямую изменять одну локальную переменную?
Каким образом параметр isolated меняет изоляцию функции, принимающей actor?
Высокоприоритетная задача ожидает завершения низкоприоритетной: какое изменение приоритета может произойти у ожидаемой задачи?
Объясните механизм: зачем вызову синхронного метода actor нужен await?
Разберите ошибку в адаптере callback API: какое нарушение контракта конкурентности произойдёт при выполнении этого кода?
func load() async -> String {
await withCheckedContinuation { continuation in
LegacyAPI.fetch { value in
continuation.resume(returning: value)
continuation.resume(returning: value + "!")
}
}
}
enum LegacyAPI {
static func fetch(_ completion: @escaping (String) -> Void) {
completion("ok")
completion("again")
}
}
Показано 1–20 из 100