diff --git a/services/updater_binary/update_processor.cpp b/services/updater_binary/update_processor.cpp index 9b7ee341b60169eb624b6231011e407f476f5205..7453ba6792a1bcfd9c36164f73e0cc79892eeb32 100644 --- a/services/updater_binary/update_processor.cpp +++ b/services/updater_binary/update_processor.cpp @@ -296,6 +296,7 @@ int32_t UScriptInstructionPkgExtract::Execute(Uscript::UScriptEnv &env, Uscript: int32_t UScriptInstructionPkgExtractRetSuc::Execute(Uscript::UScriptEnv &env, Uscript::UScriptContext &context) { + std::unique_lock lock(extractNoRetMutex_); int32_t ret = UScriptInstructionPkgExtract::Execute(env, context); if (ret != USCRIPT_SUCCESS) { LOG(ERROR) << "Error to extract file, ret = " << ret; diff --git a/services/updater_binary/update_processor.h b/services/updater_binary/update_processor.h index 9ff9678b980e5994cb9339ef0b672eb81d7f0d4b..a2342b58d513e2ce467addb3fcf9699fedddb093 100644 --- a/services/updater_binary/update_processor.h +++ b/services/updater_binary/update_processor.h @@ -90,6 +90,8 @@ public: UScriptInstructionPkgExtractRetSuc() {} ~UScriptInstructionPkgExtractRetSuc() override {} int32_t Execute(Uscript::UScriptEnv &env, Uscript::UScriptContext &context) override; +private: + std::mutex extractNoRetMutex_; }; class UScriptInstructionUpdateFromBin : public Uscript::UScriptInstruction {