diff --git a/lib/aniyomi_bridge.dart b/lib/aniyomi_bridge.dart index a779c01..8009313 100644 --- a/lib/aniyomi_bridge.dart +++ b/lib/aniyomi_bridge.dart @@ -281,7 +281,10 @@ class AniyomiBridge { final completer = Completer(); _pendingRequests[message.id] = completer; _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) { diff --git a/lib/jni_isolate.dart b/lib/jni_isolate.dart index 6c7494d..902ab7f 100644 --- a/lib/jni_isolate.dart +++ b/lib/jni_isolate.dart @@ -190,6 +190,10 @@ class JniIsolate { } } + dispose() { + _jvmIsolate.kill(priority: Isolate.immediate); + } + List _getAnimeSearchResults(JAniyomiBridge jAniyomiBridge, String query, int page, String source) { JList? searchResults = jAniyomiBridge.getAnimeSearchResults( JString.fromString(query),