From ee3397a365c5f350a60538c88f0643f155944836 Mon Sep 17 00:00:00 2001 From: Malkierian Date: Sun, 11 Jan 2026 19:25:02 -0700 Subject: Convert `size_t` reporting pointers to `std::atomic` for thread safety. (#35) --- ZAPD/ExecutableMain.cpp | 3 ++- ZAPD/Main.cpp | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ZAPD/ExecutableMain.cpp b/ZAPD/ExecutableMain.cpp index 1bb0192..102f2af 100644 --- a/ZAPD/ExecutableMain.cpp +++ b/ZAPD/ExecutableMain.cpp @@ -1,7 +1,8 @@ #include +#include extern "C" int zapd_main(int argc, char* argv[]); -extern "C" int zapd_report(int argc, char* argv[], size_t* extractCount, size_t* totalExtract); +extern "C" int zapd_report(int argc, char* argv[], std::atomic* extractCount, std::atomic* totalExtract); int main(int argc, char* argv[]) { return zapd_report(argc, argv, nullptr, nullptr); diff --git a/ZAPD/Main.cpp b/ZAPD/Main.cpp index d2d8feb..c5f146e 100644 --- a/ZAPD/Main.cpp +++ b/ZAPD/Main.cpp @@ -1,4 +1,5 @@ #include "Globals.h" +#include #include #include #include @@ -132,7 +133,7 @@ void BuildAssetTexture(const fs::path& pngFilePath, TextureType texType, const f void BuildAssetBackground(const fs::path& imageFilePath, const fs::path& outPath); void BuildAssetBlob(const fs::path& blobFilePath, const fs::path& outPath); ZFileMode ParseFileMode(const std::string& buildMode, ExporterSet* exporterSet); -int HandleExtract(ZFileMode fileMode, ExporterSet* exporterSet, size_t* extractCount = nullptr, size_t* totalExtract = nullptr); +int HandleExtract(ZFileMode fileMode, ExporterSet* exporterSet, std::atomic* extractCount = nullptr, std::atomic* totalExtract = nullptr); int ExtractFunc(int workerID, int fileListSize, std::string fileListItem, ZFileMode fileMode); std::atomic numWorkersLeft = 0; @@ -141,7 +142,7 @@ extern const char gBuildHash[]; extern void ImportExporters(); -extern "C" int zapd_report(int argc, char* argv[], size_t* extractCount, size_t* totalExtract) +extern "C" int zapd_report(int argc, char* argv[], std::atomic* extractCount, std::atomic* totalExtract) { int returnCode = 0; @@ -639,7 +640,7 @@ void Arg_SetXMLMode(int& i, char* argv[]) } } -int HandleExtract(ZFileMode fileMode, ExporterSet* exporterSet, size_t* extractCount, size_t* totalExtract) +int HandleExtract(ZFileMode fileMode, ExporterSet* exporterSet, std::atomic* extractCount, std::atomic* totalExtract) { bool procFileModeSuccess = false; -- cgit v1.2.3