[WIP] Business

This commit is contained in:
Isaac
2024-02-16 22:52:01 +04:00
parent 16c226c801
commit 46881c65ca
69 changed files with 4103 additions and 1236 deletions

View File

@@ -2997,6 +2997,8 @@ final class PostboxImpl {
private func internalTransaction<T>(_ f: (Transaction) -> T) -> (result: T, updatedTransactionStateVersion: Int64?, updatedMasterClientId: Int64?) {
let _ = self.isInTransaction.swap(true)
let startTime = CFAbsoluteTimeGetCurrent()
self.valueBox.begin()
let transaction = Transaction(queue: self.queue, postbox: self)
self.afterBegin(transaction: transaction)
@@ -3005,6 +3007,12 @@ final class PostboxImpl {
transaction.disposed = true
self.valueBox.commit()
let endTime = CFAbsoluteTimeGetCurrent()
let transactionDuration = endTime - startTime
if transactionDuration > 0.1 {
postboxLog("Postbox transaction took \(transactionDuration * 1000.0) ms")
}
let _ = self.isInTransaction.swap(false)
if let currentUpdatedState = self.currentUpdatedState {
@@ -3079,7 +3087,7 @@ final class PostboxImpl {
switch chatLocation {
case let .peer(peerId, threadId):
return .single((.peer(peerId: peerId, threadId: threadId), false))
case .thread(_, _, let data), .feed(_, let data):
case .thread(_, _, let data):
return Signal { subscriber in
var isHoleFill = false
return (data
@@ -3089,6 +3097,9 @@ final class PostboxImpl {
return (.external(value), wasHoleFill)
}).start(next: subscriber.putNext, error: subscriber.putError, completed: subscriber.putCompletion)
}
case .customChatContents:
assert(false)
return .never()
}
}