From 5ea3db130caf409aeb5dbf352d173dd9fc75791d Mon Sep 17 00:00:00 2001 From: LibXZR Date: Thu, 19 Jan 2023 02:03:35 +0800 Subject: [PATCH] Skip new launch when the previous one is still pending (#2347) Fixes #2346 Co-authored-by: LoveSy --- .../java/org/lsposed/lspd/service/LSPManagerService.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/daemon/src/main/java/org/lsposed/lspd/service/LSPManagerService.java b/daemon/src/main/java/org/lsposed/lspd/service/LSPManagerService.java index 8add9f72..d09b600e 100644 --- a/daemon/src/main/java/org/lsposed/lspd/service/LSPManagerService.java +++ b/daemon/src/main/java/org/lsposed/lspd/service/LSPManagerService.java @@ -262,6 +262,11 @@ public class LSPManagerService extends ILSPManagerService.Stub { // there's one running parasitic manager // or it's run by ourself after killing, resume it return true; + } else if (pendingManager) { + // Check the flag in case new launch comes before finishing + // the previous one to avoid racing. + Log.d(TAG, "manager is still on its way when new launch comes, skipping"); + return false; } else { // new parasitic manager launch, set the flag and kill // old processes