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