From 90013e486d204873a0d90ad40fba85d27c0a2836 Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Fri, 17 Jun 2022 01:52:36 -0700 Subject: [PATCH] Use AtomicBoolean --- .../topjohnwu/magisk/core/tasks/MagiskInstaller.kt | 14 +++++--------- 1 file changed, 5 insertions(+), 9 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 daa434dd1..4aa15fe4e 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 @@ -37,6 +37,7 @@ import java.io.* import java.nio.ByteBuffer import java.security.SecureRandom import java.util.* +import java.util.concurrent.atomic.AtomicBoolean import java.util.zip.ZipEntry import java.util.zip.ZipFile @@ -420,20 +421,15 @@ abstract class MagiskInstallImpl protected constructor( protected abstract suspend fun operations(): Boolean open suspend fun exec(): Boolean { - synchronized(Companion) { - if (haveActiveSession) - return false - haveActiveSession = true - } + if (haveActiveSession.getAndSet(true)) + return false val result = withContext(Dispatchers.IO) { operations() } - synchronized(Companion) { - haveActiveSession = false - } + haveActiveSession.set(false) return result } companion object { - private var haveActiveSession = false + private var haveActiveSession = AtomicBoolean(false) } }