База Hintsage

Конкурентность

async/await, actors, tasks и безопасность данных.

Практика

Вопросы: Конкурентность

Разберите ошибку в адаптере 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")
    }
}

Показано 2140 из 50