QElectroTech 0.200.1-dev
Loading...
Searching...
No Matches
eventloopwatchdog.h
Go to the documentation of this file.
1/*
2 Copyright 2006-2026 The QElectroTech Team
3 This file is part of QElectroTech.
4
5 QElectroTech is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 2 of the License, or
8 (at your option) any later version.
9
10 QElectroTech is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
17*/
18#ifndef EVENTLOOPWATCHDOG_H
19#define EVENTLOOPWATCHDOG_H
20
21#include <QElapsedTimer>
22#include <QObject>
23#include <QTimer>
24
56class EventLoopWatchdog : public QObject
57{
58 Q_OBJECT
59
60 public:
64 static constexpr int kTickIntervalMs = 50;
65
70 static constexpr int kStallThresholdMs = 200;
71
72 explicit EventLoopWatchdog(QObject *parent = nullptr);
73
81 void start();
82
83 private slots:
84 void tick();
85
86 private:
87 QTimer m_timer;
88 QElapsedTimer m_elapsed;
89 bool m_disabled = false;
90};
91
92#endif // EVENTLOOPWATCHDOG_H
void tick()
Definition eventloopwatchdog.cpp:47
static constexpr int kTickIntervalMs
Definition eventloopwatchdog.h:64
EventLoopWatchdog(QObject *parent=nullptr)
Definition eventloopwatchdog.cpp:23
QElapsedTimer m_elapsed
Definition eventloopwatchdog.h:88
bool m_disabled
Definition eventloopwatchdog.h:89
QTimer m_timer
Definition eventloopwatchdog.h:87
static constexpr int kStallThresholdMs
Definition eventloopwatchdog.h:70
void start()
Definition eventloopwatchdog.cpp:38