6#include <phosphortiles_export.h>
9#include <condition_variable>
13#include <unordered_map>
17class ScriptedAlgorithm;
103 std::chrono::steady_clock::time_point deadline;
104 uint64_t generation = 0;
110 std::condition_variable m_cv;
111 std::unordered_map<ScriptedAlgorithm*, Entry> m_entries;
112 bool m_shutdown =
false;
113 std::thread m_thread;
Per-loader watchdog for scripted algorithms.
Definition ScriptedAlgorithmWatchdog.h:54
~ScriptedAlgorithmWatchdog()
ScriptedAlgorithmWatchdog(const ScriptedAlgorithmWatchdog &)=delete
void arm(ScriptedAlgorithm *algo, int timeoutMs)
Arm the watchdog for algo with a timeout of timeoutMs ms.
void unregister(ScriptedAlgorithm *algo)
Remove algo from the watchdog tracking map.
ScriptedAlgorithmWatchdog()
ScriptedAlgorithmWatchdog & operator=(const ScriptedAlgorithmWatchdog &)=delete
ScriptedAlgorithmWatchdog & operator=(ScriptedAlgorithmWatchdog &&)=delete
ScriptedAlgorithmWatchdog(ScriptedAlgorithmWatchdog &&)=delete
void disarm(ScriptedAlgorithm *algo)
Disarm the watchdog for algo.
Definition ScriptedAlgorithm.h:81
Definition AutotileEngine.h:71