fix: high CPU usage because futex is still waiting for queue after illegal exit

This commit is contained in:
lizhiyuan 2022-09-26 23:46:25 +08:00
parent 19dff7fb56
commit c65d7b86df
2 changed files with 23 additions and 20 deletions

View File

@ -18,6 +18,7 @@
#include <QSettings>
#include <QGraphicsOpacityEffect>
#include <QtConcurrent> // 并发
#include <QCloseEvent> // close event
#include <DApplication>
#include <DGuiApplicationHelper>
@ -687,10 +688,6 @@ void Widget::searchApp(QString text)
}
else
{
// sendNotification(tr("Spark store could only process spk:// links for now. The search feature is coming soon!"));
// ui->webView->setUrl(QUrl("http://www.baidu.com/s?wd="+text)); // 这东西对接百度
// ui->stackedWidget->setCurrentIndex(0);
// 禁止同时进行多次搜索
if (!mutex.tryLock())
{
@ -711,18 +708,23 @@ void Widget::searchApp(QString text)
mutex.unlock();
return;
}
displaySearchApp(json);
})
displaySearchApp(json); })
.onError([this](QString errorStr)
{
qDebug() << "请求出错:" << errorStr;
sendNotification(QString(tr("Request Error: %1")).arg(errorStr));
mutex.unlock();
return;
})
return; })
.timeout(10 * 1000)
.exec();
}
httpClient->deleteLater();
}
void Widget::closeEvent(QCloseEvent *event)
{
mutex.unlock();
httpClient->deleteLater();
}
/**

View File

@ -128,6 +128,7 @@ private:
void setfoot(int);
void updatefoot();
void updateUI();
void closeEvent(QCloseEvent *event);
quint64 dirFileSize(const QString &path);