diff --git a/trunk/ConsoleDataMigration/ConsoleBackup/Exporter.cpp b/trunk/ConsoleDataMigration/ConsoleBackup/Exporter.cpp index 4afdadd..e7e2cb7 100644 --- a/trunk/ConsoleDataMigration/ConsoleBackup/Exporter.cpp +++ b/trunk/ConsoleDataMigration/ConsoleBackup/Exporter.cpp @@ -56,9 +56,6 @@ nn::os::StackBuffer s_ExportThreadStack; wchar_t s_RootName[256]; -// TODO: Thread.IsAlive に置き換える -bool s_IsExportThreadFinished = false; - } void DeleteTrash() @@ -344,7 +341,6 @@ void ExportThreadFunc() { nn::Result result; - s_IsExportThreadFinished = false; result = nn::fs::MountSpecialArchive(common::NAND_ARCHIVE_NAME, nn::fs::CTR::ARCHIVE_TYPE_CTR_NAND); if(result.IsFailure()) { @@ -372,7 +368,6 @@ void ExportThreadFunc() nn::fs::Unmount(common::NAND_ARCHIVE_NAME); NN_LOG("Export Thread Finalize\n"); - s_IsExportThreadFinished = true; } nn::Result WriteSaveData() @@ -421,6 +416,7 @@ nn::Result WriteSaveData() void FinalizeExportThread() { s_ExportThread.Join(); + s_ExportThread.Finalize(); } void ExportData() @@ -467,7 +463,7 @@ u32 GetProgress() bool IsExportFinished() { - return s_IsExportThreadFinished; + return !s_ExportThread.IsAlive(); } } diff --git a/trunk/ConsoleDataMigration/ConsoleRestore/Importer.cpp b/trunk/ConsoleDataMigration/ConsoleRestore/Importer.cpp index a5cca1f..0d109f5 100644 --- a/trunk/ConsoleDataMigration/ConsoleRestore/Importer.cpp +++ b/trunk/ConsoleDataMigration/ConsoleRestore/Importer.cpp @@ -54,7 +54,6 @@ const size_t IMPORT_THREAD_STACK_SIZE = 0x4000; nn::os::Thread s_ImportThread; nn::os::StackBuffer s_ImportThreadStack; -bool s_IsImportThreadFinished = false; const size_t TIME_ZONE_LENGTH = 9; // "+23:45" char s_TimeZoneStr[TIME_ZONE_LENGTH]; @@ -584,7 +583,6 @@ void ImportThreadFunc() { nn::Result result; - s_IsImportThreadFinished = false; result = nn::fs::MountSpecialArchive(common::NAND_ARCHIVE_NAME, nn::fs::CTR::ARCHIVE_TYPE_CTR_NAND); if(result.IsFailure()) { @@ -616,8 +614,6 @@ void ImportThreadFunc() nn::fs::Unmount(common::NAND_ARCHIVE_NAME); NN_LOG("Import Thread Finalize\n"); - s_IsImportThreadFinished = true; - } namespace @@ -734,7 +730,7 @@ void DeleteConsoleInitializedFile() bool IsImportFinished() { - return s_IsImportThreadFinished; + return !s_ImportThread.IsAlive(); } void CreateWriteFinishedFile() diff --git a/trunk/ConsoleDataMigration/ConsoleRestore/NtpClient.cpp b/trunk/ConsoleDataMigration/ConsoleRestore/NtpClient.cpp index 14662d2..53fca15 100644 --- a/trunk/ConsoleDataMigration/ConsoleRestore/NtpClient.cpp +++ b/trunk/ConsoleDataMigration/ConsoleRestore/NtpClient.cpp @@ -33,7 +33,6 @@ namespace { const size_t NTP_THREAD_STACK_SIZE = 0x1000; nn::os::Thread s_NtpThread; nn::os::StackBuffer s_NtpThreadStack; -bool s_IsNtpThreadFinish = false; bool s_NtpSyncSuccessed = false; @@ -339,13 +338,11 @@ void NtpThreadFunc() // インターネット設定を元に戻す RestoreCurrentInternetSetting(); - - s_IsNtpThreadFinish = true; } bool IsTimeAdjustFinished() { - return s_IsNtpThreadFinish; + return !s_NtpThread.IsAlive(); } bool IsTimeAdjustSuccessed() @@ -360,6 +357,11 @@ void AdjustTime() result = nn::ac::CTR::InitializeInternal(); COMMON_LOGGER_RESULT_IF_FAILED(result); + if(IsTimeAdjustFinished()) + { + s_NtpThread.Join(); + s_NtpThread.Finalize(); + } s_NtpThread.Start( NtpThreadFunc, s_NtpThreadStack); } diff --git a/trunk/ConsoleDataMigration/ConsoleRestore/Updater.cpp b/trunk/ConsoleDataMigration/ConsoleRestore/Updater.cpp index fdf49f3..34955f2 100644 --- a/trunk/ConsoleDataMigration/ConsoleRestore/Updater.cpp +++ b/trunk/ConsoleDataMigration/ConsoleRestore/Updater.cpp @@ -50,8 +50,6 @@ namespace nn::Result s_Result = nn::ResultSuccess(); -bool s_updateFinished = false; - const size_t UPDATER_THREAD_STACK_SIZE = 0x1000; nn::os::Thread s_UpdaterThread; nn::os::StackBuffer s_UpdaterThreadStack; @@ -214,32 +212,25 @@ void UpdateThreadFunc() NN_LOG("[Updater] Finish nim Updater demo.\n"); - s_updateFinished = true; - } void StartFGNetworkUpdate() { NN_LOG("Start FGNetworkUpdate\n"); - s_updateFinished = false; s_Result = nn::ResultSuccess(); s_UpdaterThread.Start(UpdateThreadFunc, s_UpdaterThreadStack); } -bool IsUpdaterThreadStateValid() -{ - return s_UpdaterThread.IsValid(); -} - void FinishFGNetworkUpdate() { NN_LOG("Finalize FGNetworkUpdate\n"); s_UpdaterThread.Join(); + s_UpdaterThread.Finalize(); } bool IsNetworkUpdateFinished() { - return s_updateFinished; + return !s_UpdaterThread.IsAlive(); } u32 GetUpdateProgress()