From 5c50bac610a823574becd771821a64488d6fe429 Mon Sep 17 00:00:00 2001 From: opficdev <162981733+opficdev@users.noreply.github.com> Date: Fri, 5 Jun 2026 18:09:08 +0900 Subject: [PATCH 1/5] =?UTF-8?q?refactor:=20=EB=AC=B4=EB=B6=84=EB=B3=84?= =?UTF-8?q?=ED=95=9C=20sendable=20=EC=A0=81=EC=9A=A9=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Application/DevLogCore/Sources/ActivityKind.swift | 2 +- Application/DevLogCore/Sources/Logger.swift | 2 +- Application/DevLogCore/Sources/TodayDisplayOptions.swift | 6 +++--- Application/DevLogCore/Sources/WidgetTodoSnapshot.swift | 2 +- Application/DevLogData/Sources/Protocol/AuthService.swift | 2 +- .../Sources/Protocol/AuthenticationService.swift | 2 +- Application/DevLogData/Sources/Protocol/UserService.swift | 2 +- .../DevLogData/Sources/Protocol/WebPageImageStore.swift | 2 +- .../Sources/Protocol/WidgetSnapshotPreferenceStore.swift | 2 +- .../Sources/Protocol/WidgetSnapshotUpdater.swift | 2 +- .../Sources/Protocol/AuthenticationRepository.swift | 2 +- .../Sources/UseCase/Auth/SignIn/SignInUseCase.swift | 2 +- .../DevLogInfra/Sources/Common/FirebaseDependency.swift | 2 +- .../Sources/Common/TopViewControllerProvider.swift | 2 +- .../DevLogInfra/Sources/Service/AuthServiceImpl.swift | 2 +- .../SocialLogin/AppleAuthenticationServiceImpl.swift | 2 +- .../Sources/Persistence/WebPageImageStoreImpl.swift | 2 +- .../Sources/Widget/UserDefaultsDependency.swift | 2 +- .../DevLogPresentation/Sources/Login/LoginFeature.swift | 6 +++--- .../Sources/Common/UserDefaultsDependency.swift | 2 +- .../Sources/Common/WidgetSharedDefaultsStore.swift | 2 +- .../Sources/Common/WidgetSnapshotStore.swift | 2 +- .../Sources/Heatmap/HeatmapWidgetSnapshotFactory.swift | 4 ++-- .../Sources/Today/TodayWidgetSnapshotFactory.swift | 8 ++++---- 24 files changed, 32 insertions(+), 32 deletions(-) diff --git a/Application/DevLogCore/Sources/ActivityKind.swift b/Application/DevLogCore/Sources/ActivityKind.swift index 27e939b1..823cec07 100644 --- a/Application/DevLogCore/Sources/ActivityKind.swift +++ b/Application/DevLogCore/Sources/ActivityKind.swift @@ -7,7 +7,7 @@ import Foundation -public enum ActivityKind: String, Hashable, Sendable { +public enum ActivityKind: String, Hashable { case created case completed case deleted diff --git a/Application/DevLogCore/Sources/Logger.swift b/Application/DevLogCore/Sources/Logger.swift index b34e192a..553677c2 100644 --- a/Application/DevLogCore/Sources/Logger.swift +++ b/Application/DevLogCore/Sources/Logger.swift @@ -8,7 +8,7 @@ import Foundation import os.log -public final class Logger: Sendable { +public final class Logger { private let subsystem: String private let category: String private let osLog: OSLog diff --git a/Application/DevLogCore/Sources/TodayDisplayOptions.swift b/Application/DevLogCore/Sources/TodayDisplayOptions.swift index ed063c6a..a27ceb39 100644 --- a/Application/DevLogCore/Sources/TodayDisplayOptions.swift +++ b/Application/DevLogCore/Sources/TodayDisplayOptions.swift @@ -7,14 +7,14 @@ import Foundation -public struct TodayDisplayOptions: Equatable, Sendable { - public enum DueDateVisibility: String, CaseIterable, Equatable, Sendable { +public struct TodayDisplayOptions: Equatable { + public enum DueDateVisibility: String, CaseIterable, Equatable { case all case withDueDateOnly case withoutDueDateOnly } - public enum FocusVisibility: String, CaseIterable, Equatable, Sendable { + public enum FocusVisibility: String, CaseIterable, Equatable { case all case focusedOnly } diff --git a/Application/DevLogCore/Sources/WidgetTodoSnapshot.swift b/Application/DevLogCore/Sources/WidgetTodoSnapshot.swift index 200e1188..a1b08f27 100644 --- a/Application/DevLogCore/Sources/WidgetTodoSnapshot.swift +++ b/Application/DevLogCore/Sources/WidgetTodoSnapshot.swift @@ -7,7 +7,7 @@ import Foundation -public struct WidgetTodoSnapshot: Equatable, Sendable { +public struct WidgetTodoSnapshot: Equatable { public let id: String public let number: Int? public let title: String diff --git a/Application/DevLogData/Sources/Protocol/AuthService.swift b/Application/DevLogData/Sources/Protocol/AuthService.swift index f8b1cacf..f6c667b0 100644 --- a/Application/DevLogData/Sources/Protocol/AuthService.swift +++ b/Application/DevLogData/Sources/Protocol/AuthService.swift @@ -8,7 +8,7 @@ import Combine import Foundation -public protocol AuthService: Sendable { +public protocol AuthService { var uid: String? { get } var providerIDs: [String] { get } var currentUserEmail: String? { get } diff --git a/Application/DevLogData/Sources/Protocol/AuthenticationService.swift b/Application/DevLogData/Sources/Protocol/AuthenticationService.swift index 6a9a23b1..c2c783b8 100644 --- a/Application/DevLogData/Sources/Protocol/AuthenticationService.swift +++ b/Application/DevLogData/Sources/Protocol/AuthenticationService.swift @@ -7,7 +7,7 @@ import Foundation -public protocol AuthenticationService: Sendable { +public protocol AuthenticationService { func signIn() async throws -> AuthDataResponse func signOut(_ uid: String) async throws func deleteAuth(_ uid: String) async throws diff --git a/Application/DevLogData/Sources/Protocol/UserService.swift b/Application/DevLogData/Sources/Protocol/UserService.swift index 67174c5d..3a82c536 100644 --- a/Application/DevLogData/Sources/Protocol/UserService.swift +++ b/Application/DevLogData/Sources/Protocol/UserService.swift @@ -7,7 +7,7 @@ import Foundation -public protocol UserService: Sendable { +public protocol UserService { func upsertUser(_ response: AuthDataResponse) async throws func fetchUserProfile() async throws -> UserProfileResponse func upsertStatusMessage(_ message: String) async throws diff --git a/Application/DevLogData/Sources/Protocol/WebPageImageStore.swift b/Application/DevLogData/Sources/Protocol/WebPageImageStore.swift index 198152b6..6a2bb78f 100644 --- a/Application/DevLogData/Sources/Protocol/WebPageImageStore.swift +++ b/Application/DevLogData/Sources/Protocol/WebPageImageStore.swift @@ -7,7 +7,7 @@ import Foundation -public protocol WebPageImageStore: Sendable { +public protocol WebPageImageStore { func cachedImageURL(for url: URL) async throws -> URL func saveImage(_ data: Data, for url: URL) async throws -> URL func dirSizeInBytes() async -> Int64 diff --git a/Application/DevLogData/Sources/Protocol/WidgetSnapshotPreferenceStore.swift b/Application/DevLogData/Sources/Protocol/WidgetSnapshotPreferenceStore.swift index 8c0a4ae2..160957c3 100644 --- a/Application/DevLogData/Sources/Protocol/WidgetSnapshotPreferenceStore.swift +++ b/Application/DevLogData/Sources/Protocol/WidgetSnapshotPreferenceStore.swift @@ -8,7 +8,7 @@ import Foundation import DevLogCore -public protocol WidgetSnapshotPreferenceStore: Sendable { +public protocol WidgetSnapshotPreferenceStore { func heatmapActivityTypes() -> [String] func setHeatmapActivityTypes(_ activityTypes: [String]) func selectedActivityKinds() -> Set diff --git a/Application/DevLogData/Sources/Protocol/WidgetSnapshotUpdater.swift b/Application/DevLogData/Sources/Protocol/WidgetSnapshotUpdater.swift index 3fa25bc7..1748bd34 100644 --- a/Application/DevLogData/Sources/Protocol/WidgetSnapshotUpdater.swift +++ b/Application/DevLogData/Sources/Protocol/WidgetSnapshotUpdater.swift @@ -8,7 +8,7 @@ import Foundation import DevLogCore -public protocol WidgetSnapshotUpdater: Sendable { +public protocol WidgetSnapshotUpdater { func updateTodaySnapshot( todos: [WidgetTodoSnapshot], now: Date diff --git a/Application/DevLogDomain/Sources/Protocol/AuthenticationRepository.swift b/Application/DevLogDomain/Sources/Protocol/AuthenticationRepository.swift index 9cbd628a..5652583a 100644 --- a/Application/DevLogDomain/Sources/Protocol/AuthenticationRepository.swift +++ b/Application/DevLogDomain/Sources/Protocol/AuthenticationRepository.swift @@ -7,7 +7,7 @@ import Foundation -public protocol AuthenticationRepository: Sendable { +public protocol AuthenticationRepository { func signIn(_ provider: AuthProvider) async throws func signOut() async throws func restore() -> Bool diff --git a/Application/DevLogDomain/Sources/UseCase/Auth/SignIn/SignInUseCase.swift b/Application/DevLogDomain/Sources/UseCase/Auth/SignIn/SignInUseCase.swift index 926e656e..46122e3c 100644 --- a/Application/DevLogDomain/Sources/UseCase/Auth/SignIn/SignInUseCase.swift +++ b/Application/DevLogDomain/Sources/UseCase/Auth/SignIn/SignInUseCase.swift @@ -5,6 +5,6 @@ // Created by 최윤진 on 11/2/25. // -public protocol SignInUseCase: Sendable { +public protocol SignInUseCase { func execute(_ provider: AuthProvider) async throws } diff --git a/Application/DevLogInfra/Sources/Common/FirebaseDependency.swift b/Application/DevLogInfra/Sources/Common/FirebaseDependency.swift index 25013ca1..d34077da 100644 --- a/Application/DevLogInfra/Sources/Common/FirebaseDependency.swift +++ b/Application/DevLogInfra/Sources/Common/FirebaseDependency.swift @@ -10,7 +10,7 @@ import FirebaseFirestore import FirebaseFunctions import FirebaseMessaging -struct FirebaseDependency: @unchecked Sendable { +struct FirebaseDependency { private let value: Value init(value: Value) { diff --git a/Application/DevLogInfra/Sources/Common/TopViewControllerProvider.swift b/Application/DevLogInfra/Sources/Common/TopViewControllerProvider.swift index 95ae7423..e6d8ee41 100644 --- a/Application/DevLogInfra/Sources/Common/TopViewControllerProvider.swift +++ b/Application/DevLogInfra/Sources/Common/TopViewControllerProvider.swift @@ -8,7 +8,7 @@ import UIKit import DevLogData -final class TopViewControllerProvider: Sendable { +final class TopViewControllerProvider { @MainActor func topViewController() -> UIViewController? { guard let keyWindow = keyWindow() else { diff --git a/Application/DevLogInfra/Sources/Service/AuthServiceImpl.swift b/Application/DevLogInfra/Sources/Service/AuthServiceImpl.swift index 00836e3e..c5587dc2 100644 --- a/Application/DevLogInfra/Sources/Service/AuthServiceImpl.swift +++ b/Application/DevLogInfra/Sources/Service/AuthServiceImpl.swift @@ -114,7 +114,7 @@ final class AuthServiceImpl: AuthService { } -private final class AuthStatePublisher: @unchecked Sendable { +private final class AuthStatePublisher { private let logger: Logger private let subject: CurrentValueSubject private let lock = NSLock() diff --git a/Application/DevLogInfra/Sources/Service/SocialLogin/AppleAuthenticationServiceImpl.swift b/Application/DevLogInfra/Sources/Service/SocialLogin/AppleAuthenticationServiceImpl.swift index e95d640d..ab354471 100644 --- a/Application/DevLogInfra/Sources/Service/SocialLogin/AppleAuthenticationServiceImpl.swift +++ b/Application/DevLogInfra/Sources/Service/SocialLogin/AppleAuthenticationServiceImpl.swift @@ -300,7 +300,7 @@ final class AppleAuthenticationServiceImpl: AuthenticationService { } } -private final class AppleSignInSession: @unchecked Sendable { +private final class AppleSignInSession { @MainActor private var delegate: AppleSignInDelegate? @MainActor diff --git a/Application/DevLogPersistence/Sources/Persistence/WebPageImageStoreImpl.swift b/Application/DevLogPersistence/Sources/Persistence/WebPageImageStoreImpl.swift index 8d6adb8e..a73fcdf4 100644 --- a/Application/DevLogPersistence/Sources/Persistence/WebPageImageStoreImpl.swift +++ b/Application/DevLogPersistence/Sources/Persistence/WebPageImageStoreImpl.swift @@ -51,7 +51,7 @@ final class WebPageImageStoreImpl: WebPageImageStore { } private extension WebPageImageStoreImpl { - func perform(_ operation: @escaping @Sendable () throws -> T) async throws -> T { + func perform(_ operation: @escaping () throws -> T) async throws -> T { try await withCheckedThrowingContinuation { continuation in queue.async { do { diff --git a/Application/DevLogPersistence/Sources/Widget/UserDefaultsDependency.swift b/Application/DevLogPersistence/Sources/Widget/UserDefaultsDependency.swift index b1526771..e74cae86 100644 --- a/Application/DevLogPersistence/Sources/Widget/UserDefaultsDependency.swift +++ b/Application/DevLogPersistence/Sources/Widget/UserDefaultsDependency.swift @@ -7,7 +7,7 @@ import Foundation -struct UserDefaultsDependency: @unchecked Sendable { +struct UserDefaultsDependency { private let value: UserDefaults init(value: UserDefaults) { diff --git a/Application/DevLogPresentation/Sources/Login/LoginFeature.swift b/Application/DevLogPresentation/Sources/Login/LoginFeature.swift index 4d0fcde8..5c877746 100644 --- a/Application/DevLogPresentation/Sources/Login/LoginFeature.swift +++ b/Application/DevLogPresentation/Sources/Login/LoginFeature.swift @@ -65,10 +65,10 @@ struct LoginFeature { } } -struct SignInUseCaseDependency: Sendable { - var execute: @Sendable (AuthProvider) async throws -> Void +struct SignInUseCaseDependency { + var execute: (AuthProvider) async throws -> Void - init(execute: @escaping @Sendable (AuthProvider) async throws -> Void) { + init(execute: @escaping (AuthProvider) async throws -> Void) { self.execute = execute } } diff --git a/Widget/DevLogWidgetCore/Sources/Common/UserDefaultsDependency.swift b/Widget/DevLogWidgetCore/Sources/Common/UserDefaultsDependency.swift index 9de0492b..76b83f1d 100644 --- a/Widget/DevLogWidgetCore/Sources/Common/UserDefaultsDependency.swift +++ b/Widget/DevLogWidgetCore/Sources/Common/UserDefaultsDependency.swift @@ -7,7 +7,7 @@ import Foundation -struct UserDefaultsDependency: @unchecked Sendable { +struct UserDefaultsDependency { private let value: UserDefaults init(value: UserDefaults) { diff --git a/Widget/DevLogWidgetCore/Sources/Common/WidgetSharedDefaultsStore.swift b/Widget/DevLogWidgetCore/Sources/Common/WidgetSharedDefaultsStore.swift index 89f20d74..9d1ee58d 100644 --- a/Widget/DevLogWidgetCore/Sources/Common/WidgetSharedDefaultsStore.swift +++ b/Widget/DevLogWidgetCore/Sources/Common/WidgetSharedDefaultsStore.swift @@ -7,7 +7,7 @@ import Foundation -public final class WidgetSharedDefaultsStore: Sendable { +public final class WidgetSharedDefaultsStore { private let userDefaults: UserDefaultsDependency public init(userDefaults: UserDefaults = UserDefaults(suiteName: WidgetAppGroup.identifier) ?? .standard) { diff --git a/Widget/DevLogWidgetCore/Sources/Common/WidgetSnapshotStore.swift b/Widget/DevLogWidgetCore/Sources/Common/WidgetSnapshotStore.swift index 9801befd..727e2bc8 100644 --- a/Widget/DevLogWidgetCore/Sources/Common/WidgetSnapshotStore.swift +++ b/Widget/DevLogWidgetCore/Sources/Common/WidgetSnapshotStore.swift @@ -7,7 +7,7 @@ import Foundation -public final class WidgetSnapshotStore: Sendable { +public final class WidgetSnapshotStore { private let store: WidgetSharedDefaultsStore private let encoder = JSONEncoder() private let decoder = JSONDecoder() diff --git a/Widget/DevLogWidgetCore/Sources/Heatmap/HeatmapWidgetSnapshotFactory.swift b/Widget/DevLogWidgetCore/Sources/Heatmap/HeatmapWidgetSnapshotFactory.swift index eda3c1e1..5db55edf 100644 --- a/Widget/DevLogWidgetCore/Sources/Heatmap/HeatmapWidgetSnapshotFactory.swift +++ b/Widget/DevLogWidgetCore/Sources/Heatmap/HeatmapWidgetSnapshotFactory.swift @@ -8,8 +8,8 @@ import Foundation import DevLogCore -public struct HeatmapWidgetSnapshotFactory: Sendable { - fileprivate struct DailyCounts: Sendable { +public struct HeatmapWidgetSnapshotFactory { + fileprivate struct DailyCounts { var createdCount = 0 var completedCount = 0 var deletedCount = 0 diff --git a/Widget/DevLogWidgetCore/Sources/Today/TodayWidgetSnapshotFactory.swift b/Widget/DevLogWidgetCore/Sources/Today/TodayWidgetSnapshotFactory.swift index 351543f8..efa0a212 100644 --- a/Widget/DevLogWidgetCore/Sources/Today/TodayWidgetSnapshotFactory.swift +++ b/Widget/DevLogWidgetCore/Sources/Today/TodayWidgetSnapshotFactory.swift @@ -8,8 +8,8 @@ import Foundation import DevLogCore -public struct TodayWidgetSnapshotFactory: Sendable { - private enum SectionCategory: String, CaseIterable, Sendable { +public struct TodayWidgetSnapshotFactory { + private enum SectionCategory: String, CaseIterable { case focused case overdue case dueSoon @@ -17,7 +17,7 @@ public struct TodayWidgetSnapshotFactory: Sendable { case unscheduled } - private struct SectionCollection: Sendable { + private struct SectionCollection { var focused = [TodayWidgetTodoItem]() var overdue = [TodayWidgetTodoItem]() var dueSoon = [TodayWidgetTodoItem]() @@ -40,7 +40,7 @@ public struct TodayWidgetSnapshotFactory: Sendable { } } - private struct TodayWidgetTodoItem: Sendable { + private struct TodayWidgetTodoItem { let id: String let number: Int let title: String From 81d5d2df625f0eba8a017e5d854dcd5372b3201e Mon Sep 17 00:00:00 2001 From: opficdev <162981733+opficdev@users.noreply.github.com> Date: Fri, 5 Jun 2026 19:16:18 +0900 Subject: [PATCH 2/5] =?UTF-8?q?feat:=20Sendable=20=EC=B1=84=ED=83=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Application/DevLogDomain/Sources/Entity/AuthProvider.swift | 2 +- .../DevLogPresentation/Sources/Login/LoginFeature.swift | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Application/DevLogDomain/Sources/Entity/AuthProvider.swift b/Application/DevLogDomain/Sources/Entity/AuthProvider.swift index d739738b..ae30ca08 100644 --- a/Application/DevLogDomain/Sources/Entity/AuthProvider.swift +++ b/Application/DevLogDomain/Sources/Entity/AuthProvider.swift @@ -7,7 +7,7 @@ import Foundation -public enum AuthProvider: String, CaseIterable { +public enum AuthProvider: String, CaseIterable, Sendable { case apple = "apple.com" case google = "google.com" case github = "github.com" diff --git a/Application/DevLogPresentation/Sources/Login/LoginFeature.swift b/Application/DevLogPresentation/Sources/Login/LoginFeature.swift index 5c877746..4d0fcde8 100644 --- a/Application/DevLogPresentation/Sources/Login/LoginFeature.swift +++ b/Application/DevLogPresentation/Sources/Login/LoginFeature.swift @@ -65,10 +65,10 @@ struct LoginFeature { } } -struct SignInUseCaseDependency { - var execute: (AuthProvider) async throws -> Void +struct SignInUseCaseDependency: Sendable { + var execute: @Sendable (AuthProvider) async throws -> Void - init(execute: @escaping (AuthProvider) async throws -> Void) { + init(execute: @escaping @Sendable (AuthProvider) async throws -> Void) { self.execute = execute } } From 85e3fd1b18ac4fe7c159a473864064d615ac1e0d Mon Sep 17 00:00:00 2001 From: opficdev <162981733+opficdev@users.noreply.github.com> Date: Fri, 5 Jun 2026 19:25:30 +0900 Subject: [PATCH 3/5] =?UTF-8?q?refactor:=20LoginFeature=20concurrency=20?= =?UTF-8?q?=EA=B2=BD=EA=B3=84=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DevLogPresentation/Sources/Login/LoginFeature.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Application/DevLogPresentation/Sources/Login/LoginFeature.swift b/Application/DevLogPresentation/Sources/Login/LoginFeature.swift index 4d0fcde8..6a4b56ec 100644 --- a/Application/DevLogPresentation/Sources/Login/LoginFeature.swift +++ b/Application/DevLogPresentation/Sources/Login/LoginFeature.swift @@ -5,8 +5,8 @@ // Created by opfic on 6/5/26. // -import ComposableArchitecture -import DevLogDomain +@preconcurrency import ComposableArchitecture +@preconcurrency import DevLogDomain import Foundation @Reducer @@ -20,7 +20,7 @@ struct LoginFeature { var alertMessage = "" } - enum Action { + enum Action: Sendable { case setAlert(Bool, AlertType? = nil) case tapSignInButton(AuthProvider) case signInSucceeded @@ -28,7 +28,7 @@ struct LoginFeature { case signInCancelled } - enum AlertType: Equatable { + enum AlertType: Equatable, Sendable { case emailUnavailable case error } From 5d12c50ccc9de07aaaacdafb9b72900300fa1b99 Mon Sep 17 00:00:00 2001 From: opficdev <162981733+opficdev@users.noreply.github.com> Date: Fri, 5 Jun 2026 20:11:23 +0900 Subject: [PATCH 4/5] =?UTF-8?q?refactor:=20LoginFeature=20dependency=20key?= =?UTF-8?q?=20=EA=B2=BD=EB=A1=9C=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DevLogPresentation/Sources/Login/LoginFeature.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Application/DevLogPresentation/Sources/Login/LoginFeature.swift b/Application/DevLogPresentation/Sources/Login/LoginFeature.swift index 6a4b56ec..476ed292 100644 --- a/Application/DevLogPresentation/Sources/Login/LoginFeature.swift +++ b/Application/DevLogPresentation/Sources/Login/LoginFeature.swift @@ -5,7 +5,7 @@ // Created by opfic on 6/5/26. // -@preconcurrency import ComposableArchitecture +import ComposableArchitecture @preconcurrency import DevLogDomain import Foundation @@ -33,7 +33,7 @@ struct LoginFeature { case error } - @Dependency(\.signInUseCase) var signInUseCase + @Dependency(SignInUseCaseDependency.self) var signInUseCase var body: some ReducerOf { Reduce { state, action in From f0665839f1b9f3b5a7b3f86991d71418fc998250 Mon Sep 17 00:00:00 2001 From: opficdev <162981733+opficdev@users.noreply.github.com> Date: Fri, 5 Jun 2026 20:32:03 +0900 Subject: [PATCH 5/5] =?UTF-8?q?fix:=20=EB=AC=B4=EB=B6=84=EB=B3=84=ED=95=9C?= =?UTF-8?q?=20Sendable=20=EC=82=AD=EC=A0=9C=20=EB=B3=B5=EA=B5=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sources/Persistence/WebPageImageStoreImpl.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Application/DevLogPersistence/Sources/Persistence/WebPageImageStoreImpl.swift b/Application/DevLogPersistence/Sources/Persistence/WebPageImageStoreImpl.swift index a73fcdf4..8d6adb8e 100644 --- a/Application/DevLogPersistence/Sources/Persistence/WebPageImageStoreImpl.swift +++ b/Application/DevLogPersistence/Sources/Persistence/WebPageImageStoreImpl.swift @@ -51,7 +51,7 @@ final class WebPageImageStoreImpl: WebPageImageStore { } private extension WebPageImageStoreImpl { - func perform(_ operation: @escaping () throws -> T) async throws -> T { + func perform(_ operation: @escaping @Sendable () throws -> T) async throws -> T { try await withCheckedThrowingContinuation { continuation in queue.async { do {