Fix build

pull/213/head
nielsandriesse 5 years ago
parent 4f3544c1fc
commit 4105f17c02

@ -18,6 +18,7 @@
#import <SessionServiceKit/TSQuotedMessage.h> #import <SessionServiceKit/TSQuotedMessage.h>
#import <SessionServiceKit/TSThread.h> #import <SessionServiceKit/TSThread.h>
#import <SessionServiceKit/YapDatabaseTransaction+OWS.h> #import <SessionServiceKit/YapDatabaseTransaction+OWS.h>
#import <SessionServiceKit/SessionServiceKit-Swift.h>
#import <YapDatabase/YapDatabase.h> #import <YapDatabase/YapDatabase.h>
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN

@ -376,15 +376,12 @@ typedef void (^SendMessageBlock)(SendCompletionBlock completion);
// TODO - in line with QuotedReply and other message attachments, saving should happen as part of sending // TODO - in line with QuotedReply and other message attachments, saving should happen as part of sending
// preparation rather than duplicated here and in the SAE // preparation rather than duplicated here and in the SAE
// TODO: <-------- [LKStorage writeWithBlock:^(YapDatabaseReadWriteTransaction *_Nonnull transaction) {
[self.dbReadWriteConnection
asyncReadWriteWithBlock:^(YapDatabaseReadWriteTransaction *_Nonnull transaction) {
if (contactShare.avatarImage) { if (contactShare.avatarImage) {
[contactShare.dbRecord saveAvatarImage:contactShare.avatarImage transaction:transaction]; [contactShare.dbRecord saveAvatarImage:contactShare.avatarImage transaction:transaction];
} }
} }
completionBlock:^{ completion:^{
__block TSOutgoingMessage *outgoingMessage = nil; __block TSOutgoingMessage *outgoingMessage = nil;
outgoingMessage = [ThreadUtil sendMessageNonDurablyWithContactShare:contactShare.dbRecord outgoingMessage = [ThreadUtil sendMessageNonDurablyWithContactShare:contactShare.dbRecord
inThread:self.thread inThread:self.thread

@ -74,7 +74,7 @@ NS_ASSUME_NONNULL_BEGIN
[LKStorage writeWithBlock:^(YapDatabaseReadWriteTransaction *_Nonnull transaction) { [LKStorage writeWithBlock:^(YapDatabaseReadWriteTransaction *_Nonnull transaction) {
[self runUpWithTransaction:transaction]; [self runUpWithTransaction:transaction];
} }
completionBlock:^{ completion:^{
OWSLogInfo(@"Completed migration %@", self.uniqueId); OWSLogInfo(@"Completed migration %@", self.uniqueId);
[self save]; [self save];

@ -25,8 +25,7 @@ NS_ASSUME_NONNULL_BEGIN
[recordIds addObjectsFromArray:[transaction allKeysInCollection:collection]]; [recordIds addObjectsFromArray:[transaction allKeysInCollection:collection]];
OWSLogInfo(@"Migrating %lu records from: %@.", (unsigned long)recordIds.count, collection); OWSLogInfo(@"Migrating %lu records from: %@.", (unsigned long)recordIds.count, collection);
} }
completionQueue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) completion:^{
completionBlock:^{
[self resaveBatch:recordIds [self resaveBatch:recordIds
collection:collection collection:collection
filter:filter filter:filter
@ -66,7 +65,7 @@ NS_ASSUME_NONNULL_BEGIN
[entity saveWithTransaction:transaction]; [entity saveWithTransaction:transaction];
} }
} }
completionBlock:^{ completion:^{
// Process the next batch. // Process the next batch.
[self resaveBatch:recordIds [self resaveBatch:recordIds
collection:collection collection:collection

@ -31,6 +31,7 @@
#import <SessionServiceKit/TSYapDatabaseObject.h> #import <SessionServiceKit/TSYapDatabaseObject.h>
#import <SessionServiceKit/UIImage+OWS.h> #import <SessionServiceKit/UIImage+OWS.h>
#import <SessionServiceKit/YapDatabaseConnection+OWS.h> #import <SessionServiceKit/YapDatabaseConnection+OWS.h>
#import <SessionServiceKit/SessionServiceKit-Swift.h>
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@ -813,7 +814,7 @@ typedef void (^ProfileManagerFailureBlock)(NSError *error);
[newRecipientIds addObject:recipientId]; [newRecipientIds addObject:recipientId];
} }
} }
completionBlock:^{ completion:^{
for (NSString *recipientId in newRecipientIds) { for (NSString *recipientId in newRecipientIds) {
[[NSNotificationCenter defaultCenter] [[NSNotificationCenter defaultCenter]
postNotificationNameAsync:kNSNotificationName_ProfileWhitelistDidChange postNotificationNameAsync:kNSNotificationName_ProfileWhitelistDidChange
@ -859,7 +860,7 @@ typedef void (^ProfileManagerFailureBlock)(NSError *error);
didChange = YES; didChange = YES;
} }
} }
completionBlock:^{ completion:^{
if (didChange) { if (didChange) {
[[NSNotificationCenter defaultCenter] [[NSNotificationCenter defaultCenter]
postNotificationNameAsync:kNSNotificationName_ProfileWhitelistDidChange postNotificationNameAsync:kNSNotificationName_ProfileWhitelistDidChange

@ -26,6 +26,7 @@
#import <SessionServiceKit/TSInvalidIdentityKeyErrorMessage.h> #import <SessionServiceKit/TSInvalidIdentityKeyErrorMessage.h>
#import <SessionServiceKit/TSOutgoingMessage.h> #import <SessionServiceKit/TSOutgoingMessage.h>
#import <SessionServiceKit/TSThread.h> #import <SessionServiceKit/TSThread.h>
#import <SessionServiceKit/SessionServiceKit-Swift.h>
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@ -203,11 +204,7 @@ typedef void (^BuildOutgoingMessageCompletionBlock)(TSOutgoingMessage *savedMess
block:^(void (^benchmarkCompletion)(void)) { block:^(void (^benchmarkCompletion)(void)) {
// To avoid blocking the send flow, we dispatch an async write from within this read // To avoid blocking the send flow, we dispatch an async write from within this read
// transaction // transaction
[LKStorage writeWithBlock:^(YapDatabaseReadWriteTransaction *_Nonnull writeTransaction) {
// TODO: <-------
[self.dbConnection
asyncReadWriteWithBlock:^(YapDatabaseReadWriteTransaction *_Nonnull writeTransaction) {
[message saveWithTransaction:writeTransaction]; [message saveWithTransaction:writeTransaction];
OWSLinkPreview *_Nullable linkPreview = OWSLinkPreview *_Nullable linkPreview =
@ -223,8 +220,7 @@ typedef void (^BuildOutgoingMessageCompletionBlock)(TSOutgoingMessage *savedMess
[attachmentInfos addObject:attachmentInfo]; [attachmentInfos addObject:attachmentInfo];
} }
completionBlock(message, attachmentInfos, writeTransaction); completionBlock(message, attachmentInfos, writeTransaction);
} } completion:benchmarkCompletion];
completionBlock:benchmarkCompletion];
}]; }];
return message; return message;
@ -721,7 +717,7 @@ typedef void (^BuildOutgoingMessageCompletionBlock)(TSOutgoingMessage *savedMess
} @catch (NSException *exception) { } @catch (NSException *exception) {
// Do nothing // Do nothing
} }
}]; } error:nil];
[TSAttachmentStream deleteAttachments]; [TSAttachmentStream deleteAttachments];
} }

@ -32,27 +32,39 @@ public final class Storage : NSObject {
// There can only be a single write transaction per database at any one time, so all write transactions must use `OWSPrimaryStorage`'s `dbReadWriteConnection`. // There can only be a single write transaction per database at any one time, so all write transactions must use `OWSPrimaryStorage`'s `dbReadWriteConnection`.
// Executing a write transaction from within a write transaction causes a deadlock and must be avoided. // Executing a write transaction from within a write transaction causes a deadlock and must be avoided.
@discardableResult
@objc(writeWithBlock:) @objc(writeWithBlock:)
public static func objc_write(with block: @escaping (YapDatabaseReadWriteTransaction) -> Void) -> AnyPromise { public static func objc_write(with block: @escaping (YapDatabaseReadWriteTransaction) -> Void) -> AnyPromise {
return AnyPromise.from(write(with: block)) return AnyPromise.from(write(with: block))
} }
@discardableResult
public static func write(with block: @escaping (YapDatabaseReadWriteTransaction) -> Void) -> Promise<Void> { public static func write(with block: @escaping (YapDatabaseReadWriteTransaction) -> Void) -> Promise<Void> {
return write(with: block) { }
}
@discardableResult
@objc(writeWithBlock:completion:)
public static func objc_write(with block: @escaping (YapDatabaseReadWriteTransaction) -> Void, completion: @escaping () -> Void) -> AnyPromise {
return AnyPromise.from(write(with: block, completion: completion))
}
@discardableResult
public static func write(with block: @escaping (YapDatabaseReadWriteTransaction) -> Void, completion: @escaping () -> Void) -> Promise<Void> {
let (promise, seal) = Promise<Void>.pending() let (promise, seal) = Promise<Void>.pending()
serialQueue.async { // TODO: There are cases where this isn't necessary serialQueue.async { // TODO: There are cases where this isn't necessary
owsStorage.dbReadWriteConnection.readWrite(block) owsStorage.dbReadWriteConnection.readWrite(block)
DispatchQueue.main.async {
completion()
}
seal.fulfill(()) seal.fulfill(())
} }
return promise return promise
} }
/// Blocks the calling thread until the write has finished. /// Blocks the calling thread until the write has finished.
@discardableResult
@objc(writeSyncWithBlock:error:) @objc(writeSyncWithBlock:error:)
public static func objc_writeSync(with block: @escaping (YapDatabaseReadWriteTransaction) -> Void) throws {
try writeSync(with: block)
}
/// Blocks the calling thread until the write has finished.
public static func writeSync(with block: @escaping (YapDatabaseReadWriteTransaction) -> Void) throws { public static func writeSync(with block: @escaping (YapDatabaseReadWriteTransaction) -> Void) throws {
try write(with: block).wait() try write(with: block).wait()
} }

@ -17,6 +17,7 @@
#import "TSMessage.h" #import "TSMessage.h"
#import "TSThread.h" #import "TSThread.h"
#import <SessionCoreKit/NSDate+OWS.h> #import <SessionCoreKit/NSDate+OWS.h>
#import <SessionServiceKit/SessionServiceKit-Swift.h>
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN

@ -8,6 +8,7 @@
#import <YapDatabase/YapDatabase.h> #import <YapDatabase/YapDatabase.h>
#import <YapDatabase/YapDatabaseQuery.h> #import <YapDatabase/YapDatabaseQuery.h>
#import <YapDatabase/YapDatabaseSecondaryIndex.h> #import <YapDatabase/YapDatabaseSecondaryIndex.h>
#import <SessionServiceKit/SessionServiceKit-Swift.h>
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN

@ -9,6 +9,7 @@
#import <YapDatabase/YapDatabase.h> #import <YapDatabase/YapDatabase.h>
#import <YapDatabase/YapDatabaseQuery.h> #import <YapDatabase/YapDatabaseQuery.h>
#import <YapDatabase/YapDatabaseSecondaryIndex.h> #import <YapDatabase/YapDatabaseSecondaryIndex.h>
#import <SessionServiceKit/SessionServiceKit-Swift.h>
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN

@ -10,6 +10,7 @@
#import <YapDatabase/YapDatabase.h> #import <YapDatabase/YapDatabase.h>
#import <YapDatabase/YapDatabaseQuery.h> #import <YapDatabase/YapDatabaseQuery.h>
#import <YapDatabase/YapDatabaseSecondaryIndex.h> #import <YapDatabase/YapDatabaseSecondaryIndex.h>
#import <SessionServiceKit/SessionServiceKit-Swift.h>
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN

@ -6,6 +6,7 @@
#import "OWSPrimaryStorage.h" #import "OWSPrimaryStorage.h"
#import "SSKEnvironment.h" #import "SSKEnvironment.h"
#import <YapDatabase/YapDatabaseTransaction.h> #import <YapDatabase/YapDatabaseTransaction.h>
#import <SessionServiceKit/SessionServiceKit-Swift.h>
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@ -52,11 +53,9 @@ NS_ASSUME_NONNULL_BEGIN
- (void)saveAsyncWithCompletionBlock:(void (^_Nullable)(void))completionBlock - (void)saveAsyncWithCompletionBlock:(void (^_Nullable)(void))completionBlock
{ {
// TODO: <-------- [LKStorage writeWithBlock:^(YapDatabaseReadWriteTransaction *_Nonnull transaction) {
[[self dbReadWriteConnection] asyncReadWriteWithBlock:^(YapDatabaseReadWriteTransaction *_Nonnull transaction) {
[self saveWithTransaction:transaction]; [self saveWithTransaction:transaction];
} } completion:completionBlock];
completionBlock:completionBlock];
} }
- (void)touchWithTransaction:(YapDatabaseReadWriteTransaction *)transaction - (void)touchWithTransaction:(YapDatabaseReadWriteTransaction *)transaction

@ -13,6 +13,7 @@
#import <Reachability/Reachability.h> #import <Reachability/Reachability.h>
#import <SessionCoreKit/Cryptography.h> #import <SessionCoreKit/Cryptography.h>
#import <YapDatabase/YapDatabase.h> #import <YapDatabase/YapDatabase.h>
#import <SessionServiceKit/SessionServiceKit-Swift.h>
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN

Loading…
Cancel
Save