Refactor start of delete thread (#90)

Reviewed-on: #90
Co-authored-by: localhorst <localhorst@mosad.xyz>
Co-committed-by: localhorst <localhorst@mosad.xyz>
This commit is contained in:
2025-12-12 22:56:28 +01:00
committed by Hendrik Schutter
parent 1dce303ab6
commit 8a42ccf9c0
2 changed files with 10 additions and 13 deletions

View File

@ -95,7 +95,7 @@ private:
static void ThreadScanDevices();
static void ThreadUserInput();
static void ThreadShred(Drive *const pDrive);
static void ThreadDelete();
static void ThreadDelete(Drive *const pDrive);
static void ThreadCheckFrozenDrives();
static void handleArrowKey(TUI::UserInput userInput);
static void handleEnter();

View File

@ -284,16 +284,16 @@ void reHDD::ThreadShred(Drive *const pDrive)
}
}
void reHDD::ThreadDelete()
void reHDD::ThreadDelete(Drive *const pDrive)
{
Drive *tmpSelectedDrive = getSelectedDrive();
if (tmpSelectedDrive != nullptr)
if (pDrive != nullptr)
{
tmpSelectedDrive->setActionStartTimestamp(); // save timestamp at start of deleting
Delete::deleteDrive(tmpSelectedDrive); // blocking, no thread
tmpSelectedDrive->state = Drive::TaskState::NONE; // delete finished
tmpSelectedDrive->bWasDeleted = true;
Logger::logThis()->info("Finished delete for: " + tmpSelectedDrive->getModelName() + "-" + tmpSelectedDrive->getSerial());
pDrive->state = Drive::TaskState::DELETE_ACTIVE;
pDrive->setActionStartTimestamp(); // save timestamp at start of deleting
Delete::deleteDrive(pDrive); // blocking, no thread
pDrive->state = Drive::TaskState::NONE; // delete finished
pDrive->bWasDeleted = true;
Logger::logThis()->info("Finished delete for: " + pDrive->getModelName() + "-" + pDrive->getSerial());
ui->updateTUI(&listDrives, u16SelectedEntry);
}
}
@ -693,16 +693,13 @@ void reHDD::handleEnter()
if (tmpSelectedDrive->state == Drive::TaskState::SHRED_SELECTED)
{
Logger::logThis()->info("Started shred/check for: " + tmpSelectedDrive->getModelName() + "-" + tmpSelectedDrive->getSerial());
// task for drive is running --> don't show more task option
thread(ThreadShred, tmpSelectedDrive).detach();
}
if (tmpSelectedDrive->state == Drive::TaskState::DELETE_SELECTED)
{
Logger::logThis()->info("Started delete for: " + tmpSelectedDrive->getModelName() + "-" + tmpSelectedDrive->getSerial());
tmpSelectedDrive->state = Drive::TaskState::DELETE_ACTIVE;
// task for drive is running --> don't show more task options
thread(ThreadDelete).detach();
thread(ThreadDelete, tmpSelectedDrive).detach();
}
}
}