mirror of
https://github.com/JohnEstropia/CoreStore.git
synced 2026-09-10 03:41:53 +02:00
Initial prototype for Swift 6 mode
This commit is contained in:
@@ -36,7 +36,8 @@ extension Progress {
|
||||
- parameter closure: the closure to execute on progress change
|
||||
*/
|
||||
@nonobjc
|
||||
public func setProgressHandler(_ closure: ((_ progress: Progress) -> Void)?) {
|
||||
@MainActor
|
||||
public func setProgressHandler(_ closure: (@MainActor (_ progress: Progress) -> Void)?) {
|
||||
|
||||
self.progressObserver.progressHandler = closure
|
||||
}
|
||||
@@ -46,15 +47,19 @@ extension Progress {
|
||||
|
||||
private struct PropertyKeys {
|
||||
|
||||
static var progressObserver: Void?
|
||||
static nonisolated(unsafe) var progressObserver: Void?
|
||||
}
|
||||
|
||||
@nonobjc
|
||||
@MainActor
|
||||
private var progressObserver: ProgressObserver {
|
||||
|
||||
get {
|
||||
|
||||
let object: ProgressObserver? = Internals.getAssociatedObjectForKey(&PropertyKeys.progressObserver, inObject: self)
|
||||
let object: ProgressObserver? = Internals.getAssociatedObjectForKey(
|
||||
&PropertyKeys.progressObserver,
|
||||
inObject: self
|
||||
)
|
||||
if let observer = object {
|
||||
|
||||
return observer
|
||||
@@ -76,11 +81,12 @@ extension Progress {
|
||||
// MARK: - ProgressObserver
|
||||
|
||||
@objc
|
||||
private final class ProgressObserver: NSObject {
|
||||
private final class ProgressObserver: NSObject, @unchecked Sendable {
|
||||
|
||||
private unowned let progress: Progress
|
||||
|
||||
fileprivate var progressHandler: ((_ progress: Progress) -> Void)? {
|
||||
@MainActor
|
||||
fileprivate var progressHandler: (@MainActor (_ progress: Progress) -> Void)? {
|
||||
|
||||
didSet {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user