diff --git a/Sources/LuminateDI/DIContainer.swift b/Sources/LuminateDI/DIContainer.swift index 9698aa3..b2cac93 100644 --- a/Sources/LuminateDI/DIContainer.swift +++ b/Sources/LuminateDI/DIContainer.swift @@ -1,10 +1,10 @@ import Foundation -public final class DIContainer { +public final class DIContainer: @unchecked Sendable { public static let shared = DIContainer() public private(set) var values = InjectionValues() - private var observers: [AnyKeyPath: [UUID: () -> Void]] = [:] + private var observers: [AnyKeyPath: [UUID: @Sendable () -> Void]] = [:] private let lock = NSLock() private init() {} @@ -36,7 +36,7 @@ public final class DIContainer { @discardableResult func addObserver( for keyPath: KeyPath, - handler: @escaping () -> Void + handler: @escaping @Sendable () -> Void ) -> UUID { let id = UUID() lock.withLock { @@ -54,7 +54,7 @@ public final class DIContainer { } private func notifyObservers(for keyPath: AnyKeyPath) { - let handlers: [() -> Void] = lock.withLock { + let handlers: [@Sendable () -> Void] = lock.withLock { Array(observers[keyPath]?.values ?? []) } handlers.forEach { $0() }