summaryrefslogtreecommitdiff
path: root/src/lockwidget.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-11-06 06:50:05 -0500
committerisanae <14251494+isanae@users.noreply.github.com>2019-11-06 07:45:03 -0500
commit8f40ec0bdcb99cc1a0a2bde3074842391844f5d6 (patch)
treecb27da55c4860a4140174d52a8f982e2da5037de /src/lockwidget.cpp
parent96cc662b187f465713d3963f7c8cf9a1b4856aa5 (diff)
threaded wait for process
Diffstat (limited to 'src/lockwidget.cpp')
-rw-r--r--src/lockwidget.cpp22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/lockwidget.cpp b/src/lockwidget.cpp
index aae0316b..8b654674 100644
--- a/src/lockwidget.cpp
+++ b/src/lockwidget.cpp
@@ -305,24 +305,38 @@ private:
LockWidget::Session::~Session()
{
- LockWidget::instance().unlock(this);
+ unlock();
+}
+
+void LockWidget::Session::unlock()
+{
+ QMetaObject::invokeMethod(qApp, [this]{
+ LockWidget::instance().unlock(this);
+ });
}
void LockWidget::Session::setInfo(DWORD pid, const QString& name)
{
- m_pid = pid;
- m_name = name;
+ {
+ std::scoped_lock lock(m_mutex);
+ m_pid = pid;
+ m_name = name;
+ }
- LockWidget::instance().updateLabel();
+ QMetaObject::invokeMethod(qApp, [this]{
+ LockWidget::instance().updateLabel();
+ });
}
DWORD LockWidget::Session::pid() const
{
+ std::scoped_lock lock(m_mutex);
return m_pid;
}
const QString& LockWidget::Session::name() const
{
+ std::scoped_lock lock(m_mutex);
return m_name;
}