Shutdown RootServer forcibly if timeout

This commit is contained in:
Mygod
2020-11-04 07:27:24 +08:00
parent ed80bf391a
commit 973c947d4a

View File

@@ -1,6 +1,7 @@
package be.mygod.librootkotlinx package be.mygod.librootkotlinx
import android.content.Context import android.content.Context
import android.os.Build
import android.os.Looper import android.os.Looper
import android.os.Parcelable import android.os.Parcelable
import android.os.RemoteException import android.os.RemoteException
@@ -314,7 +315,12 @@ class RootServer {
*/ */
suspend fun close() { suspend fun close() {
closeInternal() closeInternal()
callbackListenerExit.await() try {
withTimeout(10000) { callbackListenerExit.await() }
} catch (e: TimeoutCancellationException) {
Logger.me.w("Closing the instance has timed out", e)
if (Build.VERSION.SDK_INT < 26) process.destroy() else if (process.isAlive) process.destroyForcibly()
}
} }
companion object { companion object {