Added timeout in case the JNI Isolate crashes and adds a dispose method to be kill the JNI Isolate
This commit is contained in:
@@ -281,7 +281,10 @@ class AniyomiBridge {
|
|||||||
final completer = Completer<T>();
|
final completer = Completer<T>();
|
||||||
_pendingRequests[message.id] = completer;
|
_pendingRequests[message.id] = completer;
|
||||||
_jniSenderPort.send(message);
|
_jniSenderPort.send(message);
|
||||||
return completer.future;
|
return completer.future.timeout(
|
||||||
|
const Duration(seconds: 20),
|
||||||
|
onTimeout: () => throw TimeoutException("JNI Isolate timed out")
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
String _getDylibDir(Directory supportDirectory) {
|
String _getDylibDir(Directory supportDirectory) {
|
||||||
|
|||||||
@@ -190,6 +190,10 @@ class JniIsolate {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dispose() {
|
||||||
|
_jvmIsolate.kill(priority: Isolate.immediate);
|
||||||
|
}
|
||||||
|
|
||||||
List<JSAnime> _getAnimeSearchResults(JAniyomiBridge jAniyomiBridge, String query, int page, String source) {
|
List<JSAnime> _getAnimeSearchResults(JAniyomiBridge jAniyomiBridge, String query, int page, String source) {
|
||||||
JList<JObject?>? searchResults = jAniyomiBridge.getAnimeSearchResults(
|
JList<JObject?>? searchResults = jAniyomiBridge.getAnimeSearchResults(
|
||||||
JString.fromString(query),
|
JString.fromString(query),
|
||||||
|
|||||||
Reference in New Issue
Block a user