mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
Threadが終了したかどうかを正しく判定するように
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@11 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
parent
b285a3a31a
commit
60adc3739f
@ -56,9 +56,6 @@ nn::os::StackBuffer<EXPORT_THREAD_STACK_SIZE> s_ExportThreadStack;
|
|||||||
|
|
||||||
wchar_t s_RootName[256];
|
wchar_t s_RootName[256];
|
||||||
|
|
||||||
// TODO: Thread.IsAlive に置き換える
|
|
||||||
bool s_IsExportThreadFinished = false;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DeleteTrash()
|
void DeleteTrash()
|
||||||
@ -344,7 +341,6 @@ void ExportThreadFunc()
|
|||||||
{
|
{
|
||||||
nn::Result result;
|
nn::Result result;
|
||||||
|
|
||||||
s_IsExportThreadFinished = false;
|
|
||||||
result = nn::fs::MountSpecialArchive(common::NAND_ARCHIVE_NAME, nn::fs::CTR::ARCHIVE_TYPE_CTR_NAND);
|
result = nn::fs::MountSpecialArchive(common::NAND_ARCHIVE_NAME, nn::fs::CTR::ARCHIVE_TYPE_CTR_NAND);
|
||||||
if(result.IsFailure())
|
if(result.IsFailure())
|
||||||
{
|
{
|
||||||
@ -372,7 +368,6 @@ void ExportThreadFunc()
|
|||||||
nn::fs::Unmount(common::NAND_ARCHIVE_NAME);
|
nn::fs::Unmount(common::NAND_ARCHIVE_NAME);
|
||||||
|
|
||||||
NN_LOG("Export Thread Finalize\n");
|
NN_LOG("Export Thread Finalize\n");
|
||||||
s_IsExportThreadFinished = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
nn::Result WriteSaveData()
|
nn::Result WriteSaveData()
|
||||||
@ -421,6 +416,7 @@ nn::Result WriteSaveData()
|
|||||||
void FinalizeExportThread()
|
void FinalizeExportThread()
|
||||||
{
|
{
|
||||||
s_ExportThread.Join();
|
s_ExportThread.Join();
|
||||||
|
s_ExportThread.Finalize();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ExportData()
|
void ExportData()
|
||||||
@ -467,7 +463,7 @@ u32 GetProgress()
|
|||||||
|
|
||||||
bool IsExportFinished()
|
bool IsExportFinished()
|
||||||
{
|
{
|
||||||
return s_IsExportThreadFinished;
|
return !s_ExportThread.IsAlive();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -54,7 +54,6 @@ const size_t IMPORT_THREAD_STACK_SIZE = 0x4000;
|
|||||||
nn::os::Thread s_ImportThread;
|
nn::os::Thread s_ImportThread;
|
||||||
nn::os::StackBuffer<IMPORT_THREAD_STACK_SIZE> s_ImportThreadStack;
|
nn::os::StackBuffer<IMPORT_THREAD_STACK_SIZE> s_ImportThreadStack;
|
||||||
|
|
||||||
bool s_IsImportThreadFinished = false;
|
|
||||||
const size_t TIME_ZONE_LENGTH = 9; // "+23:45"
|
const size_t TIME_ZONE_LENGTH = 9; // "+23:45"
|
||||||
char s_TimeZoneStr[TIME_ZONE_LENGTH];
|
char s_TimeZoneStr[TIME_ZONE_LENGTH];
|
||||||
|
|
||||||
@ -584,7 +583,6 @@ void ImportThreadFunc()
|
|||||||
{
|
{
|
||||||
nn::Result result;
|
nn::Result result;
|
||||||
|
|
||||||
s_IsImportThreadFinished = false;
|
|
||||||
result = nn::fs::MountSpecialArchive(common::NAND_ARCHIVE_NAME, nn::fs::CTR::ARCHIVE_TYPE_CTR_NAND);
|
result = nn::fs::MountSpecialArchive(common::NAND_ARCHIVE_NAME, nn::fs::CTR::ARCHIVE_TYPE_CTR_NAND);
|
||||||
if(result.IsFailure())
|
if(result.IsFailure())
|
||||||
{
|
{
|
||||||
@ -616,8 +614,6 @@ void ImportThreadFunc()
|
|||||||
nn::fs::Unmount(common::NAND_ARCHIVE_NAME);
|
nn::fs::Unmount(common::NAND_ARCHIVE_NAME);
|
||||||
|
|
||||||
NN_LOG("Import Thread Finalize\n");
|
NN_LOG("Import Thread Finalize\n");
|
||||||
s_IsImportThreadFinished = true;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
@ -734,7 +730,7 @@ void DeleteConsoleInitializedFile()
|
|||||||
|
|
||||||
bool IsImportFinished()
|
bool IsImportFinished()
|
||||||
{
|
{
|
||||||
return s_IsImportThreadFinished;
|
return !s_ImportThread.IsAlive();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreateWriteFinishedFile()
|
void CreateWriteFinishedFile()
|
||||||
|
|||||||
@ -33,7 +33,6 @@ namespace {
|
|||||||
const size_t NTP_THREAD_STACK_SIZE = 0x1000;
|
const size_t NTP_THREAD_STACK_SIZE = 0x1000;
|
||||||
nn::os::Thread s_NtpThread;
|
nn::os::Thread s_NtpThread;
|
||||||
nn::os::StackBuffer<NTP_THREAD_STACK_SIZE> s_NtpThreadStack;
|
nn::os::StackBuffer<NTP_THREAD_STACK_SIZE> s_NtpThreadStack;
|
||||||
bool s_IsNtpThreadFinish = false;
|
|
||||||
bool s_NtpSyncSuccessed = false;
|
bool s_NtpSyncSuccessed = false;
|
||||||
|
|
||||||
|
|
||||||
@ -339,13 +338,11 @@ void NtpThreadFunc()
|
|||||||
|
|
||||||
// インターネット設定を元に戻す
|
// インターネット設定を元に戻す
|
||||||
RestoreCurrentInternetSetting();
|
RestoreCurrentInternetSetting();
|
||||||
|
|
||||||
s_IsNtpThreadFinish = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsTimeAdjustFinished()
|
bool IsTimeAdjustFinished()
|
||||||
{
|
{
|
||||||
return s_IsNtpThreadFinish;
|
return !s_NtpThread.IsAlive();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsTimeAdjustSuccessed()
|
bool IsTimeAdjustSuccessed()
|
||||||
@ -360,6 +357,11 @@ void AdjustTime()
|
|||||||
result = nn::ac::CTR::InitializeInternal();
|
result = nn::ac::CTR::InitializeInternal();
|
||||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||||
|
|
||||||
|
if(IsTimeAdjustFinished())
|
||||||
|
{
|
||||||
|
s_NtpThread.Join();
|
||||||
|
s_NtpThread.Finalize();
|
||||||
|
}
|
||||||
s_NtpThread.Start( NtpThreadFunc, s_NtpThreadStack);
|
s_NtpThread.Start( NtpThreadFunc, s_NtpThreadStack);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -50,8 +50,6 @@ namespace
|
|||||||
|
|
||||||
nn::Result s_Result = nn::ResultSuccess();
|
nn::Result s_Result = nn::ResultSuccess();
|
||||||
|
|
||||||
bool s_updateFinished = false;
|
|
||||||
|
|
||||||
const size_t UPDATER_THREAD_STACK_SIZE = 0x1000;
|
const size_t UPDATER_THREAD_STACK_SIZE = 0x1000;
|
||||||
nn::os::Thread s_UpdaterThread;
|
nn::os::Thread s_UpdaterThread;
|
||||||
nn::os::StackBuffer<UPDATER_THREAD_STACK_SIZE> s_UpdaterThreadStack;
|
nn::os::StackBuffer<UPDATER_THREAD_STACK_SIZE> s_UpdaterThreadStack;
|
||||||
@ -214,32 +212,25 @@ void UpdateThreadFunc()
|
|||||||
|
|
||||||
NN_LOG("[Updater] Finish nim Updater demo.\n");
|
NN_LOG("[Updater] Finish nim Updater demo.\n");
|
||||||
|
|
||||||
s_updateFinished = true;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void StartFGNetworkUpdate()
|
void StartFGNetworkUpdate()
|
||||||
{
|
{
|
||||||
NN_LOG("Start FGNetworkUpdate\n");
|
NN_LOG("Start FGNetworkUpdate\n");
|
||||||
s_updateFinished = false;
|
|
||||||
s_Result = nn::ResultSuccess();
|
s_Result = nn::ResultSuccess();
|
||||||
s_UpdaterThread.Start(UpdateThreadFunc, s_UpdaterThreadStack);
|
s_UpdaterThread.Start(UpdateThreadFunc, s_UpdaterThreadStack);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsUpdaterThreadStateValid()
|
|
||||||
{
|
|
||||||
return s_UpdaterThread.IsValid();
|
|
||||||
}
|
|
||||||
|
|
||||||
void FinishFGNetworkUpdate()
|
void FinishFGNetworkUpdate()
|
||||||
{
|
{
|
||||||
NN_LOG("Finalize FGNetworkUpdate\n");
|
NN_LOG("Finalize FGNetworkUpdate\n");
|
||||||
s_UpdaterThread.Join();
|
s_UpdaterThread.Join();
|
||||||
|
s_UpdaterThread.Finalize();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsNetworkUpdateFinished()
|
bool IsNetworkUpdateFinished()
|
||||||
{
|
{
|
||||||
return s_updateFinished;
|
return !s_UpdaterThread.IsAlive();
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 GetUpdateProgress()
|
u32 GetUpdateProgress()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user