Daily iOS
0일 연속
동시성주관식

actor 재진입성

Swift Concurrency 로 만든 아래 이미지 캐시 actor는 같은 키에 대해 네트워크 요청이 두 번 나가는 경우가 있습니다. actor가 상태를 보호해 주는데도 왜 이런 일이 생기나요?

actor ImageCache {
    private var cache: [URL: UIImage] = [:]
    func image(for url: URL) async throws -> UIImage {
        if let hit = cache[url] { return hit }
        let img = try await download(url)
        cache[url] = img
        return img
    }
}