mirror of
https://github.com/StikDebug/StikDebug.git
synced 2026-10-16 12:30:29 +00:00
ensure heartbeat happened recently before enabling jit (#197)
This commit is contained in:
parent
74d7de5fe7
commit
c3f5653086
3 changed files with 19 additions and 1 deletions
|
|
@ -120,6 +120,15 @@ JITEnableContext* sharedJITContext = nil;
|
|||
);
|
||||
}
|
||||
|
||||
- (void)ensureHeartbeat {
|
||||
// wait a bit until heartbeat finish. wait at most 10s
|
||||
int deadline = 50;
|
||||
while((!lastHeartbeatDate || [[NSDate now] timeIntervalSinceDate:lastHeartbeatDate] > 15) && deadline) {
|
||||
--deadline;
|
||||
usleep(200);
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL)debugAppWithBundleID:(NSString*)bundleID logger:(LogFunc)logger {
|
||||
if (!provider) {
|
||||
if (logger) {
|
||||
|
|
@ -128,6 +137,9 @@ JITEnableContext* sharedJITContext = nil;
|
|||
NSLog(@"Provider not initialized!");
|
||||
return NO;
|
||||
}
|
||||
|
||||
[self ensureHeartbeat];
|
||||
|
||||
return debug_app(provider,
|
||||
[bundleID UTF8String],
|
||||
[self createCLogger:logger]) == 0;
|
||||
|
|
@ -141,6 +153,9 @@ JITEnableContext* sharedJITContext = nil;
|
|||
NSLog(@"Provider not initialized!");
|
||||
return NO;
|
||||
}
|
||||
|
||||
[self ensureHeartbeat];
|
||||
|
||||
return debug_app_pid(provider,
|
||||
pid,
|
||||
[self createCLogger:logger]) == 0;
|
||||
|
|
|
|||
|
|
@ -9,11 +9,13 @@
|
|||
#ifndef HEARTBEAT_H
|
||||
#define HEARTBEAT_H
|
||||
#include "idevice.h"
|
||||
@import Foundation;
|
||||
|
||||
typedef void (^HeartbeatCompletionHandlerC)(int result, const char *message);
|
||||
typedef void (^LogFuncC)(const char* message, ...);
|
||||
|
||||
extern bool isHeartbeat;
|
||||
extern NSDate* lastHeartbeatDate;
|
||||
|
||||
void startHeartbeat(IdevicePairingFile* pairintFile, TcpProviderHandle** provider, int* heartbeatSessionId, HeartbeatCompletionHandlerC completion, LogFuncC logger);
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
|
||||
bool isHeartbeat = false;
|
||||
|
||||
NSDate* lastHeartbeatDate = nil;
|
||||
|
||||
void startHeartbeat(IdevicePairingFile* pairing_file, TcpProviderHandle** provider, int* heartbeatSessionId, HeartbeatCompletionHandlerC completion, LogFuncC logger) {
|
||||
int currentSessionId = *heartbeatSessionId;
|
||||
|
|
@ -82,6 +82,7 @@ void startHeartbeat(IdevicePairingFile* pairing_file, TcpProviderHandle** provid
|
|||
return;
|
||||
}
|
||||
logger("DEBUG: Polo reply sent successfully.");
|
||||
lastHeartbeatDate = [NSDate date];
|
||||
isHeartbeat = true;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue