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];
|
||||
|
||||
// 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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -54,7 +54,6 @@ const size_t IMPORT_THREAD_STACK_SIZE = 0x4000;
|
||||
nn::os::Thread s_ImportThread;
|
||||
nn::os::StackBuffer<IMPORT_THREAD_STACK_SIZE> 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()
|
||||
|
||||
@ -33,7 +33,6 @@ namespace {
|
||||
const size_t NTP_THREAD_STACK_SIZE = 0x1000;
|
||||
nn::os::Thread s_NtpThread;
|
||||
nn::os::StackBuffer<NTP_THREAD_STACK_SIZE> 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);
|
||||
}
|
||||
|
||||
|
||||
@ -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<UPDATER_THREAD_STACK_SIZE> 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()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user