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:
N2614 2011-02-03 08:30:47 +00:00
parent b285a3a31a
commit 60adc3739f
4 changed files with 11 additions and 26 deletions

View File

@ -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();
}
}

View File

@ -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()

View File

@ -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);
}

View File

@ -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()