1#ifndef SRC_IV_THREADS_WATCHDOG_HPP
2#define SRC_IV_THREADS_WATCHDOG_HPP
48 static void stopThreads(
eThreadType type,
const std::optional<std::shared_ptr<AbstractProgress>> &progress);
61 static std::map<iv::types::threadName, ThreadData>
m_threads;
Definition IRunnable.hpp:10
Definition ThreadRunnablePeriodic.hpp:15
Definition WatchDog.hpp:35
static bool stopMonitoring()
Definition WatchDog.cpp:64
static void addThread(const iv::types::threadName &name, ThreadRunnablePeriodic *runnable, eThreadType type)
Definition WatchDog.cpp:97
static std::map< iv::types::threadName, ThreadData > m_threads
Definition WatchDog.hpp:61
static void resumeThread(const iv::types::threadName &name)
Definition WatchDog.cpp:347
static std::mutex m_mutex
Definition WatchDog.hpp:62
static void pauseThread(const iv::types::threadName &name)
Definition WatchDog.cpp:324
void periodicTask() override
Definition WatchDog.cpp:28
static bool startThread(const iv::types::threadName &name)
Definition WatchDog.cpp:241
~WatchDog() override=default
static bool restartThread(const iv::types::threadName &name)
Definition WatchDog.cpp:271
static void removeThread(const iv::types::threadName &name)
Definition WatchDog.cpp:108
static void restartThreads(eThreadType type, const std::optional< std::shared_ptr< AbstractProgress > > &progress)
Definition WatchDog.cpp:165
iv::types::timestamp startTime
Definition WatchDog.hpp:65
static bool startMonitoring()
Definition WatchDog.cpp:51
static void stopThreads(eThreadType type, const std::optional< std::shared_ptr< AbstractProgress > > &progress)
Definition WatchDog.cpp:206
WatchDog()
Definition WatchDog.cpp:23
static void startThreads(eThreadType type, const std::optional< std::shared_ptr< AbstractProgress > > &progress)
Definition WatchDog.cpp:130
static bool stopThread(const iv::types::threadName &name)
Definition WatchDog.cpp:279
static std::map< std::thread::id, std::atomic< bool > > haveThreadsCrashed
Definition WatchDog.hpp:58
static std::optional< ThreadData > getThreadData(const iv::types::threadName &name)
Definition WatchDog.cpp:315
Definition BackgroundTaskWithDialog.cpp:8
eThreadType
Definition WatchDog.hpp:19
@ Editor
Definition WatchDog.hpp:21
@ Internal
Definition WatchDog.hpp:22
@ Communication
Definition WatchDog.hpp:20
uint64_t timestamp
Definition types.hpp:21
std::string threadName
Definition types.hpp:26
Definition WatchDog.hpp:26
iv::threads::Thread * thread
Definition WatchDog.hpp:29
eThreadType type
Definition WatchDog.hpp:31
iv::threads::IRunnable * runnable
Definition WatchDog.hpp:30
iv::types::threadName name
Definition WatchDog.hpp:27
iv::types::timestamp lastTimeRunning
Definition WatchDog.hpp:28