Add concurrency handling implementation with ticket management and file locking

This commit is contained in:
ImBenji
2025-12-02 14:11:45 +00:00
parent e6ccad87b4
commit eae4d0e24e
16 changed files with 1405 additions and 1551 deletions

View File

@@ -0,0 +1,30 @@
#pragma once
#include <cstdint>
#include <functional>
#include <iosfwd>
#include <thread>
#define STALE_HEARTBEAT_THRESHOLD_MS 5000
enum SweepstoreTicketOperation : int;
namespace SweepstoreConcurrency {
void spawnTicket(std::string filePath,
const SweepstoreTicketOperation& operation,
const uint32_t keyHash,
const uint32_t targetSize,
const std::function<void()> onApproved,
std::string debugLabel = ""
);
void initialiseMaster(std::string filePath);
inline void initialiseMasterAsync(std::string filePath) {
std::thread([&filePath]() {
initialiseMaster(filePath);
}).detach();
}
}