diff --git a/examples/platform/tizen/TizenServiceAppMain.cpp b/examples/platform/tizen/TizenServiceAppMain.cpp index 4b5df762d8254e..06f90928b99c9a 100644 --- a/examples/platform/tizen/TizenServiceAppMain.cpp +++ b/examples/platform/tizen/TizenServiceAppMain.cpp @@ -84,13 +84,16 @@ void TizenServiceAppMain::AppTerminated() void TizenServiceAppMain::AppControl(app_control_h app_control) { ChipLogProgress(NotSpecified, "Tizen app control"); - - mLinuxArgs.Parse(mArgc > 0 ? mArgv[0] : nullptr, app_control); - if (ChipLinuxAppInit(mLinuxArgs.argc(), const_cast(mLinuxArgs.argv())) != 0) + if (!initialized) { - service_app_exit(); - return; + mLinuxArgs.Parse(mArgc > 0 ? mArgv[0] : nullptr, app_control); + if (ChipLinuxAppInit(mLinuxArgs.argc(), const_cast(mLinuxArgs.argv())) != 0) + { + service_app_exit(); + return; + } + + mLinuxThread = std::thread(ChipLinuxAppMainLoop); + initialized = true; } - - mLinuxThread = std::thread(ChipLinuxAppMainLoop); } diff --git a/examples/platform/tizen/TizenServiceAppMain.h b/examples/platform/tizen/TizenServiceAppMain.h index 92846c109e73a9..20f889e94a8b63 100644 --- a/examples/platform/tizen/TizenServiceAppMain.h +++ b/examples/platform/tizen/TizenServiceAppMain.h @@ -44,4 +44,5 @@ class TizenServiceAppMain char ** mArgv = nullptr; OptionsProxy mLinuxArgs; std::thread mLinuxThread; + bool initialized = false; };