Merge pull request #189 from Nythepegasus/feature/retries

Add various retries throughout the Rust function calls
This commit is contained in:
Joe Mattiello
2022-12-30 17:04:43 -05:00
committed by GitHub
3 changed files with 41 additions and 5 deletions

View File

@@ -146,7 +146,13 @@ class LaunchViewController: RSTLaunchViewController, UIDocumentPickerDelegate
func start_minimuxer_threads(_ pairing_file: String) { func start_minimuxer_threads(_ pairing_file: String) {
set_usbmuxd_socket() set_usbmuxd_socket()
let res = start_minimuxer(pairing_file: pairing_file) var res = start_minimuxer(pairing_file: pairing_file)
var attempts = 10
while (attempts != 0 && res != 0) {
print("start_minimuxer `res` != 0, retry #\(attempts)")
res = start_minimuxer(pairing_file: pairing_file)
attempts -= 1
}
if res != 0 { if res != 0 {
displayError("minimuxer failed to start. Incorrect arguments were passed.") displayError("minimuxer failed to start. Incorrect arguments were passed.")
} }

View File

@@ -51,7 +51,13 @@ class SendAppOperation: ResultOperation<()>
for (index, data) in data.enumerated() { for (index, data) in data.enumerated() {
pls[index] = data pls[index] = data
} }
var attempts = 10
let res = minimuxer_yeet_app_afc(ns_bundle_ptr, pls, UInt(data.length)) let res = minimuxer_yeet_app_afc(ns_bundle_ptr, pls, UInt(data.length))
while (attempts != 0 && res != 0){
print("minimuxer_yeet_app_afc `res` != 0, retry #\(attempts)")
let res = minimuxer_yeet_app_afc(ns_bundle_ptr, pls, UInt(data.length))
attempts -= 1
}
if res == 0 { if res == 0 {
self.progress.completedUnitCount += 1 self.progress.completedUnitCount += 1
self.finish(.success(())) self.finish(.success(()))

View File

@@ -27,7 +27,13 @@ public func set_usbmuxd_socket() {
public func debug_app(app_id: String) throws -> Uhoh { public func debug_app(app_id: String) throws -> Uhoh {
let ai = NSString(string: app_id) let ai = NSString(string: app_id)
let ai_pointer = UnsafeMutablePointer<CChar>(mutating: ai.utf8String) let ai_pointer = UnsafeMutablePointer<CChar>(mutating: ai.utf8String)
let res = minimuxer_debug_app(ai_pointer) var res = minimuxer_debug_app(ai_pointer)
var attempts = 10
while (attempts != 0 && res != 0) {
print("(JIT) ATTEMPTS: \(attempts)")
res = minimuxer_debug_app(ai_pointer)
attempts -= 1
}
if res != 0 { if res != 0 {
throw Uhoh.Bad(code: res) throw Uhoh.Bad(code: res)
} }
@@ -39,7 +45,13 @@ public func install_provisioning_profile(plist: Data) throws -> Uhoh {
print(pls) print(pls)
print(plist) print(plist)
let x = plist.withUnsafeBytes { buf in UnsafeMutableRawPointer(mutating: buf) } let x = plist.withUnsafeBytes { buf in UnsafeMutableRawPointer(mutating: buf) }
let res = minimuxer_install_provisioning_profile(x, UInt32(plist.count)) var res = minimuxer_install_provisioning_profile(x, UInt32(plist.count))
var attempts = 10
while (attempts != 0 && res != 0) {
print("(INSTALL) ATTEMPTS: \(attempts)")
res = minimuxer_install_provisioning_profile(x, UInt32(plist.count))
attempts -= 1
}
if res != 0 { if res != 0 {
throw Uhoh.Bad(code: res) throw Uhoh.Bad(code: res)
} }
@@ -49,7 +61,13 @@ public func install_provisioning_profile(plist: Data) throws -> Uhoh {
public func remove_provisioning_profile(id: String) throws -> Uhoh { public func remove_provisioning_profile(id: String) throws -> Uhoh {
let id_ns = NSString(string: id) let id_ns = NSString(string: id)
let id_pointer = UnsafeMutablePointer<CChar>(mutating: id_ns.utf8String) let id_pointer = UnsafeMutablePointer<CChar>(mutating: id_ns.utf8String)
let res = minimuxer_remove_provisioning_profile(id_pointer) var res = minimuxer_remove_provisioning_profile(id_pointer)
var attempts = 10
while (attempts != 0 && res != 0) {
print("(REMOVE PROFILE) ATTEMPTS: \(attempts)")
res = minimuxer_remove_provisioning_profile(id_pointer)
attempts -= 1
}
if res != 0 { if res != 0 {
throw Uhoh.Bad(code: res) throw Uhoh.Bad(code: res)
} }
@@ -59,7 +77,13 @@ public func remove_provisioning_profile(id: String) throws -> Uhoh {
public func remove_app(app_id: String) throws -> Uhoh { public func remove_app(app_id: String) throws -> Uhoh {
let ai = NSString(string: app_id) let ai = NSString(string: app_id)
let ai_pointer = UnsafeMutablePointer<CChar>(mutating: ai.utf8String) let ai_pointer = UnsafeMutablePointer<CChar>(mutating: ai.utf8String)
let res = minimuxer_remove_app(ai_pointer) var res = minimuxer_remove_app(ai_pointer)
var attempts = 10
while (attempts != 0 && res != 0) {
print("(REMOVE APP) ATTEMPTS: \(attempts)")
res = minimuxer_remove_app(ai_pointer)
attempts -= 1
}
if res != 0 { if res != 0 {
throw Uhoh.Bad(code: res) throw Uhoh.Bad(code: res)
} }