Continue adopting async/await.

This commit is contained in:
Brent Simmons
2023-07-11 22:18:22 -07:00
parent 65106be716
commit 2a18cd8930
6 changed files with 39 additions and 3 deletions

View File

@@ -257,6 +257,10 @@ public typealias ArticleStatusesResultBlock = (ArticleStatusesResult) -> Void
return articlesTable.mark(articles, statusKey, flag, completion)
}
public func markArticleIDs(_ articleIDs: Set<String>, statusKey: ArticleStatus.Key, flag: Bool) async throws {
try await articlesTable.markArticleIDs(articleIDs, statusKey, flag)
}
public func mark(articleIDs: Set<String>, statusKey: ArticleStatus.Key, flag: Bool, completion: DatabaseCompletionBlock?) {
articlesTable.mark(articleIDs, statusKey, flag, completion)
}

View File

@@ -493,6 +493,23 @@ final class ArticlesTable: DatabaseTable {
}
}
func markArticleIDs(_ articleIDs: Set<String>, _ statusKey: ArticleStatus.Key, _ flag: Bool) async throws {
try await withCheckedThrowingContinuation { continuation in
Task { @MainActor in
queue.runInTransaction { databaseResult in
switch databaseResult {
case .success(let database):
self.statusesTable.mark(articleIDs, statusKey, flag, database)
continuation.resume()
case .failure(let databaseError):
continuation.resume(throwing: databaseError)
}
}
}
}
}
func mark(_ articleIDs: Set<String>, _ statusKey: ArticleStatus.Key, _ flag: Bool, _ completion: DatabaseCompletionBlock?) {
queue.runInTransaction { databaseResult in
switch databaseResult {