Files
Radio/module/radio/BackEnd/BackEnd.cpp
T
2026-08-03 11:22:23 +08:00

32 lines
782 B
C++

#include "BackEnd.h"
#include <QMetaObject>
Back_End::~Back_End() {
stop_mock_thread();
}
void Back_End::stop_mock_thread() {
++mock_generation;
QTimer* timer = mock_timer;
mock_timer = nullptr;
if (timer) {
if (timer->thread() == QThread::currentThread()) {
timer->stop();
delete timer;
}
else if (mock_thread && mock_thread->isRunning()) {
QMetaObject::invokeMethod(timer, [timer]() {
timer->stop();
delete timer;
}, Qt::BlockingQueuedConnection);
}
else {
delete timer;
}
}
if (!mock_thread)
return;
mock_thread->quit();
mock_thread->wait();
delete mock_thread;
mock_thread = nullptr;
}