From cbf781f0e5944d7d18147044dc2a353fabc4c697 Mon Sep 17 00:00:00 2001 From: localhorst Date: Wed, 10 Dec 2025 21:37:14 +0100 Subject: [PATCH] fix prod build --- include/reHDD.h | 2 +- src/shred.cpp | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/include/reHDD.h b/include/reHDD.h index 01da1fd..059e199 100644 --- a/include/reHDD.h +++ b/include/reHDD.h @@ -31,7 +31,7 @@ #endif // Logic -#define DRYRUN // don't touch the drives +// #define DRYRUN // don't touch the drives #define FROZEN_ALERT // show alert if drive is frozen #define ZERO_CHECK // check drive after shred if all bytes are zero, show alert if this fails diff --git a/src/shred.cpp b/src/shred.cpp index 99c3b36..5938bf3 100644 --- a/src/shred.cpp +++ b/src/shred.cpp @@ -93,8 +93,10 @@ int Shred::shredDrive(Drive *drive, int *ipSignalFd) tfng_prng_seedkey(ucKey); this->ulDriveByteSize = getDriveSizeInBytes(driveFileDiscr); - drive->sShredSpeed.chronoShredTimestamp = std::chrono::system_clock::now(); // set inital timestamp for speed metric - drive->sShredSpeed.ulSpeedMetricBytesWritten = 0U; // uses to calculate speed metric + Drive::ShredSpeed shredSpeed = drive->sShredSpeed.load(); + shredSpeed.chronoShredTimestamp = std::chrono::system_clock::now(); // set inital timestamp for speed metric + shredSpeed.ulSpeedMetricBytesWritten = 0U; // uses to calculate speed metric + drive->sShredSpeed.store(shredSpeed); #ifdef LOG_LEVEL_HIGH Logger::logThis()->info("Shred-Task: Bytes-Size of Drive: " + to_string(this->ulDriveByteSize) + " - Drive: " + drive->getSerial()); @@ -140,14 +142,15 @@ int Shred::shredDrive(Drive *drive, int *ipSignalFd) return -1; } - ulDriveByteCounter += iByteShredded; - ulDriveByteOverallCount += iByteShredded; - d32Percent = this->calcProgress(); - drive->sShredSpeed.ulSpeedMetricBytesWritten += iByteShredded; + auto shredSpeed = drive->sShredSpeed.load(); + shredSpeed.ulSpeedMetricBytesWritten += iByteShredded; + drive->sShredSpeed.store(shredSpeed); + d32Percent = this->calcProgress(); #ifdef LOG_LEVEL_HIGH Logger::logThis()->info("Shred-Task: ByteCount: " + to_string(ulDriveByteCounter) + " - iteration: " + to_string((uiShredIterationCounter + 1)) + " - progress: " + to_string(d32Percent) + " - Drive: " + drive->getSerial()); #endif + if ((d32Percent - d32TmpPercent) >= 0.01) { // set shred percantage @@ -157,7 +160,7 @@ int Shred::shredDrive(Drive *drive, int *ipSignalFd) write(*ipSignalFd, "A", 1); } - if (drive->state != Drive::SHRED_ACTIVE) + if (drive->state != Drive::TaskState::SHRED_ACTIVE) { drive->setTaskPercentage(0); d32Percent = 0.00; @@ -184,7 +187,7 @@ int Shred::shredDrive(Drive *drive, int *ipSignalFd) drive->bWasShredded = true; Logger::logThis()->info("Shred-Task finished - Drive: " + drive->getModelName() + "-" + drive->getSerial() + " @" + address.str()); #ifdef ZERO_CHECK - drive->state = Drive::CHECK_ACTIVE; + drive->state = Drive::TaskState::CHECK_ACTIVE; Logger::logThis()->info("Check-Task started - Drive: " + drive->getModelName() + "-" + drive->getSerial() + " @" + address.str()); drive->u32DriveChecksumAfterShredding = uiCalcChecksum(driveFileDiscr, drive, ipSignalFd); #ifdef LOG_LEVEL_HIGH