diff --git a/offload/plugins-nextgen/common/src/PluginInterface.cpp b/offload/plugins-nextgen/common/src/PluginInterface.cpp index d2451d8a34221..76ae0a2dd9c45 100644 --- a/offload/plugins-nextgen/common/src/PluginInterface.cpp +++ b/offload/plugins-nextgen/common/src/PluginInterface.cpp @@ -1058,8 +1058,9 @@ Error GenericDeviceTy::setupRPCServer(GenericPluginTy &Plugin, if (auto Err = Server.initDevice(*this, Plugin.getGlobalHandler(), Image)) return Err; - if (auto Err = Server.startThread()) - return Err; + if (!Server.Thread->Running.load(std::memory_order_acquire)) + if (auto Err = Server.startThread()) + return Err; RPCServer = &Server; DP("Running an RPC server on device %d\n", getDeviceId()); @@ -1634,7 +1635,7 @@ Error GenericPluginTy::deinit() { if (GlobalHandler) delete GlobalHandler; - if (RPCServer && RPCServer->Thread->Running.load(std::memory_order_relaxed)) + if (RPCServer && RPCServer->Thread->Running.load(std::memory_order_acquire)) if (Error Err = RPCServer->shutDown()) return Err;