Fix numerous concurrency warnings.

This commit is contained in:
Brent Simmons
2024-04-07 21:32:47 -07:00
parent 4b0e7addc9
commit d1dc4cceec
15 changed files with 98 additions and 74 deletions

View File

@@ -10,15 +10,15 @@ import Foundation
import WebKit
import Articles
class DetailIconSchemeHandler: NSObject, WKURLSchemeHandler {
final class DetailIconSchemeHandler: NSObject, WKURLSchemeHandler {
var currentArticle: Article?
func webView(_ webView: WKWebView, start urlSchemeTask: WKURLSchemeTask) {
Task { @MainActor in
guard let responseURL = urlSchemeTask.request.url, let iconImage = self.currentArticle?.iconImage() else {
guard let responseURL = urlSchemeTask.request.url, let iconImage = self.currentArticle?.iconImage() else {
urlSchemeTask.didFailWithError(URLError(.fileDoesNotExist))
return
}

View File

@@ -168,29 +168,33 @@ extension Feed: PasteboardWriterOwner {
// MARK: - NSPasteboardWriting
func writableTypes(for pasteboard: NSPasteboard) -> [NSPasteboard.PasteboardType] {
nonisolated func writableTypes(for pasteboard: NSPasteboard) -> [NSPasteboard.PasteboardType] {
return [FeedPasteboardWriter.feedUTIType, .URL, .string, FeedPasteboardWriter.feedUTIInternalType]
MainActor.assumeIsolated {
return [FeedPasteboardWriter.feedUTIType, .URL, .string, FeedPasteboardWriter.feedUTIInternalType]
}
}
func pasteboardPropertyList(forType type: NSPasteboard.PasteboardType) -> Any? {
nonisolated func pasteboardPropertyList(forType type: NSPasteboard.PasteboardType) -> Any? {
let plist: Any?
switch type {
case .string:
plist = feed.nameForDisplay
case .URL:
plist = feed.url
case FeedPasteboardWriter.feedUTIType:
plist = exportDictionary
case FeedPasteboardWriter.feedUTIInternalType:
plist = internalDictionary
default:
plist = nil
MainActor.assumeIsolated {
let plist: Any?
switch type {
case .string:
plist = feed.nameForDisplay
case .URL:
plist = feed.url
case FeedPasteboardWriter.feedUTIType:
plist = exportDictionary
case FeedPasteboardWriter.feedUTIInternalType:
plist = internalDictionary
default:
plist = nil
}
return plist
}
return plist
}
}

View File

@@ -104,25 +104,29 @@ extension Folder: PasteboardWriterOwner {
// MARK: - NSPasteboardWriting
func writableTypes(for pasteboard: NSPasteboard) -> [NSPasteboard.PasteboardType] {
nonisolated func writableTypes(for pasteboard: NSPasteboard) -> [NSPasteboard.PasteboardType] {
return [.string, FolderPasteboardWriter.folderUTIInternalType]
MainActor.assumeIsolated {
return [.string, FolderPasteboardWriter.folderUTIInternalType]
}
}
func pasteboardPropertyList(forType type: NSPasteboard.PasteboardType) -> Any? {
nonisolated func pasteboardPropertyList(forType type: NSPasteboard.PasteboardType) -> Any? {
let plist: Any?
switch type {
case .string:
plist = folder.nameForDisplay
case FolderPasteboardWriter.folderUTIInternalType:
plist = internalDictionary
default:
plist = nil
MainActor.assumeIsolated {
let plist: Any?
switch type {
case .string:
plist = folder.nameForDisplay
case FolderPasteboardWriter.folderUTIInternalType:
plist = internalDictionary
default:
plist = nil
}
return plist
}
return plist
}
}