mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
Improve threading
This commit is contained in:
parent
632c9f34db
commit
ac0a20c8a7
2 changed files with 3 additions and 7 deletions
|
@ -7,10 +7,6 @@ extension OnionRequestAPI {
|
|||
|
||||
internal typealias EncryptionResult = (ciphertext: Data, symmetricKey: Data, ephemeralPublicKey: Data)
|
||||
|
||||
private static func getQueue() -> DispatchQueue {
|
||||
return DispatchQueue(label: UUID().uuidString, qos: .userInitiated)
|
||||
}
|
||||
|
||||
/// Returns `size` bytes of random data generated using the default secure random number generator. See
|
||||
/// [SecRandomCopyBytes](https://developer.apple.com/documentation/security/1399291-secrandomcopybytes) for more information.
|
||||
private static func getSecureRandomData(ofSize size: UInt) throws -> Data {
|
||||
|
@ -46,7 +42,7 @@ extension OnionRequestAPI {
|
|||
/// Encrypts `payload` for `snode` and returns the result. Use this to build the core of an onion request.
|
||||
internal static func encrypt(_ payload: JSON, forTargetSnode snode: LokiAPITarget) -> Promise<EncryptionResult> {
|
||||
let (promise, seal) = Promise<EncryptionResult>.pending()
|
||||
getQueue().async {
|
||||
DispatchQueue.global().async {
|
||||
do {
|
||||
guard JSONSerialization.isValidJSONObject(payload) else { return seal.reject(HTTP.Error.invalidJSON) }
|
||||
let payloadAsData = try JSONSerialization.data(withJSONObject: payload, options: [])
|
||||
|
@ -66,7 +62,7 @@ extension OnionRequestAPI {
|
|||
/// Encrypts the previous encryption result (i.e. that of the hop after this one) for this hop. Use this to build the layers of an onion request.
|
||||
internal static func encryptHop(from lhs: LokiAPITarget, to rhs: LokiAPITarget, using previousEncryptionResult: EncryptionResult) -> Promise<EncryptionResult> {
|
||||
let (promise, seal) = Promise<EncryptionResult>.pending()
|
||||
getQueue().async {
|
||||
DispatchQueue.global().async {
|
||||
let parameters: JSON = [
|
||||
"ciphertext" : previousEncryptionResult.ciphertext.base64EncodedString(),
|
||||
"ephemeral_key" : previousEncryptionResult.ephemeralPublicKey.toHexString(),
|
||||
|
|
|
@ -53,7 +53,7 @@ internal enum OnionRequestAPI {
|
|||
/// Tests the given snode. The returned promise errors out if the snode is faulty; the promise is fulfilled otherwise.
|
||||
private static func testSnode(_ snode: LokiAPITarget) -> Promise<Void> {
|
||||
let (promise, seal) = Promise<Void>.pending()
|
||||
let queue = DispatchQueue(label: UUID().uuidString, qos: .userInitiated) // No need to block the work queue for this
|
||||
let queue = DispatchQueue.global() // No need to block the work queue for this
|
||||
queue.async {
|
||||
let url = "\(snode.address):\(snode.port)/get_stats/v1"
|
||||
let timeout: TimeInterval = 6 // Use a shorter timeout for testing
|
||||
|
|
Loading…
Reference in a new issue