diff options
| author | isanae <14251494+isanae@users.noreply.github.com> | 2019-11-06 06:50:05 -0500 |
|---|---|---|
| committer | isanae <14251494+isanae@users.noreply.github.com> | 2019-11-06 07:45:03 -0500 |
| commit | 8f40ec0bdcb99cc1a0a2bde3074842391844f5d6 (patch) | |
| tree | cb27da55c4860a4140174d52a8f982e2da5037de /src/lockwidget.cpp | |
| parent | 96cc662b187f465713d3963f7c8cf9a1b4856aa5 (diff) | |
threaded wait for process
Diffstat (limited to 'src/lockwidget.cpp')
| -rw-r--r-- | src/lockwidget.cpp | 22 |
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; } |
