From 60f3d62f0015eeae77cfc1b3bebd087defb9a8f4 Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Wed, 24 Feb 2021 02:50:55 -0800 Subject: [PATCH] Proper synchronization --- .../com/topjohnwu/magisk/core/tasks/MagiskInstaller.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/topjohnwu/magisk/core/tasks/MagiskInstaller.kt b/app/src/main/java/com/topjohnwu/magisk/core/tasks/MagiskInstaller.kt index 77151dd88..625fd651e 100644 --- a/app/src/main/java/com/topjohnwu/magisk/core/tasks/MagiskInstaller.kt +++ b/app/src/main/java/com/topjohnwu/magisk/core/tasks/MagiskInstaller.kt @@ -43,8 +43,6 @@ import java.security.SecureRandom import java.util.* import java.util.zip.ZipFile -private var haveActiveSession: Boolean = false - abstract class MagiskInstallImpl protected constructor( protected val console: MutableList = NOPList.getInstance(), private val logs: MutableList = NOPList.getInstance() @@ -418,17 +416,21 @@ abstract class MagiskInstallImpl protected constructor( protected abstract suspend fun operations(): Boolean open suspend fun exec(): Boolean { - synchronized(haveActiveSession) { + synchronized(Companion) { if (haveActiveSession) return false haveActiveSession = true } val result = withContext(Dispatchers.IO) { operations() } - synchronized(haveActiveSession) { + synchronized(Companion) { haveActiveSession = false } return result } + + companion object { + private var haveActiveSession = false + } } abstract class MagiskInstaller(