summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMalkierian <malkierian@gmail.com>2026-01-11 19:25:02 -0700
committerGitHub <noreply@github.com>2026-01-12 02:25:02 +0000
commitee3397a365c5f350a60538c88f0643f155944836 (patch)
tree769ae9f7fba721543790a418e066065e0c8a6570
parent2be9bcbf5ca7d47749eb67e079113ec94450b25e (diff)
Convert `size_t` reporting pointers to `std::atomic<size_t>` for thread safety. (#35)
-rw-r--r--ZAPD/ExecutableMain.cpp3
-rw-r--r--ZAPD/Main.cpp7
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 <stdio.h>
+#include <atomic>
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<size_t>* extractCount, std::atomic<size_t>* 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 <atomic>
#include <Utils/DiskFile.h>
#include <Utils/Path.h>
#include <Utils/Directory.h>
@@ -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<size_t>* extractCount = nullptr, std::atomic<size_t>* totalExtract = nullptr);
int ExtractFunc(int workerID, int fileListSize, std::string fileListItem, ZFileMode fileMode);
std::atomic<unsigned int> 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<size_t>* extractCount, std::atomic<size_t>* 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<size_t>* extractCount, std::atomic<size_t>* totalExtract)
{
bool procFileModeSuccess = false;