summaryrefslogtreecommitdiff
path: root/src/lockwidget.cpp
diff options
context:
space:
mode:
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;
}