Fix database handling issues

This commit is contained in:
Niels Andriesse 2020-02-26 09:58:36 +07:00
parent c0dda78e52
commit 1c44a65f2c
3 changed files with 10 additions and 3 deletions

View File

@ -142,7 +142,7 @@ public final class LokiAPI : NSObject {
destinations.append(contentsOf: slaveDestinations)
seal.fulfill(destinations)
}
if let transaction = transaction {
if let transaction = transaction, transaction.connection.pendingTransactionCount != 0 {
getDestinationsInternal(in: transaction)
} else {
storage.dbReadConnection.read { transaction in

View File

@ -57,7 +57,7 @@ public class LokiDotNetAPI : NSObject {
func setAuthTokenInternal(in transaction: YapDatabaseReadWriteTransaction) {
transaction.setObject(newValue, forKey: server, inCollection: authTokenCollection)
}
if let transaction = transaction {
if let transaction = transaction, transaction.connection.pendingTransactionCount != 0 {
setAuthTokenInternal(in: transaction)
} else {
storage.dbReadWriteConnection.readWrite { transaction in

View File

@ -76,9 +76,16 @@ public final class LokiFileServerAPI : LokiDotNetAPI {
}
})
}.map(on: DispatchQueue.global()) { deviceLinks -> Set<DeviceLink> in
storage.dbReadWriteConnection.readWrite { transaction in
func setDeviceLinks(in transaction: YapDatabaseReadWriteTransaction) {
storage.setDeviceLinks(deviceLinks, in: transaction)
}
if let transaction = transaction, transaction.connection.pendingTransactionCount != 0 {
setDeviceLinks(in: transaction)
} else {
storage.dbReadWriteConnection.readWrite { transaction in
setDeviceLinks(in: transaction)
}
}
return deviceLinks
}
}