From f7ae47ad07a24e8e26e5afcd0a9b747f25bb7129 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Sun, 19 May 2019 23:04:02 +0200 Subject: QEvdevTouchScreenData: use a mutex locker instead of manual lock/unlock() Extra difficulty: the lock is conditional. Not a problem with std::unique_lock, which is movable. Change-Id: Ib5515838ccb10100d5aa31163ab7f171591c04c4 Reviewed-by: Giuseppe D'Angelo --- src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/platformsupport/input') diff --git a/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp b/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp index f3cc160b3e..2ab66efe59 100644 --- a/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp +++ b/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp @@ -49,6 +49,9 @@ #include #include #include + +#include + #ifdef Q_OS_FREEBSD #include #else @@ -560,8 +563,9 @@ void QEvdevTouchScreenData::processInputEvent(input_event *data) if (!m_contacts.isEmpty() && m_contacts.constBegin().value().trackingId == -1) assignIds(); + std::unique_lock locker; if (m_filtered) - m_mutex.lock(); + locker = std::unique_lock{m_mutex}; // update timestamps m_lastTimeStamp = m_timeStamp; @@ -648,9 +652,6 @@ void QEvdevTouchScreenData::processInputEvent(input_event *data) if (!m_touchPoints.isEmpty() && combinedStates != Qt::TouchPointStationary) reportPoints(); - - if (m_filtered) - m_mutex.unlock(); } m_lastEventType = data->type; -- cgit v1.2.3