summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/android
diff options
context:
space:
mode:
authorAssam Boudjelthia <[email protected]>2025-08-21 17:41:31 +0300
committerAssam Boudjelthia <[email protected]>2025-08-26 22:57:44 +0300
commit60506aa8b7489d8cf60cfaa357fb224d19b62e13 (patch)
treeba7547b6e7f9427d25d72c1bca3b91c8f0ec8b9c /src/plugins/platforms/android
parentf149f306682abc30094d51d0285166ff2f4560dc (diff)
Android: add logging for AndroidDeadlockProtector
Have AndroidDeadlockProtector instance provide a string as an identifier of where it's going to be acquired so that when another code try to acquire we can have better logs of what can potentially go wrong. Pick-to: 6.10 Change-Id: I14abc0058831c5f23f2d96c6ce0231a6e0cc8f68 Reviewed-by: Ville Voutilainen <[email protected]>
Diffstat (limited to 'src/plugins/platforms/android')
-rw-r--r--src/plugins/platforms/android/androidjniaccessibility.cpp3
-rw-r--r--src/plugins/platforms/android/qandroideventdispatcher.cpp5
-rw-r--r--src/plugins/platforms/android/qandroidinputcontext.cpp5
-rw-r--r--src/plugins/platforms/android/qandroidplatformopenglwindow.cpp4
-rw-r--r--src/plugins/platforms/android/qandroidplatformvulkanwindow.cpp5
5 files changed, 16 insertions, 6 deletions
diff --git a/src/plugins/platforms/android/androidjniaccessibility.cpp b/src/plugins/platforms/android/androidjniaccessibility.cpp
index 6473fd7eed8..add32f19e4f 100644
--- a/src/plugins/platforms/android/androidjniaccessibility.cpp
+++ b/src/plugins/platforms/android/androidjniaccessibility.cpp
@@ -63,7 +63,8 @@ namespace QtAndroidAccessibility
template <typename Func, typename Ret>
void runInObjectContext(QObject *context, Func &&func, Ret *retVal)
{
- QtAndroidPrivate::AndroidDeadlockProtector protector;
+ QtAndroidPrivate::AndroidDeadlockProtector protector(
+ u"QtAndroidAccessibility::runInObjectContext()"_s);
if (!protector.acquire()) {
__android_log_print(ANDROID_LOG_WARN, m_qtTag,
"Could not run accessibility call in object context, accessing "
diff --git a/src/plugins/platforms/android/qandroideventdispatcher.cpp b/src/plugins/platforms/android/qandroideventdispatcher.cpp
index b620ce95d7f..4e088ab0d32 100644
--- a/src/plugins/platforms/android/qandroideventdispatcher.cpp
+++ b/src/plugins/platforms/android/qandroideventdispatcher.cpp
@@ -4,6 +4,8 @@
#include "qandroideventdispatcher.h"
#include "androidjnimain.h"
+using namespace Qt::StringLiterals;
+
QAndroidEventDispatcher::QAndroidEventDispatcher(QObject *parent) :
QUnixEventDispatcherQPA(parent)
{
@@ -52,7 +54,8 @@ bool QAndroidEventDispatcher::processEvents(QEventLoop::ProcessEventsFlags flags
flags |= QEventLoop::ExcludeSocketNotifiers | QEventLoop::X11ExcludeTimers;
{
- QtAndroidPrivate::AndroidDeadlockProtector protector;
+ QtAndroidPrivate::AndroidDeadlockProtector protector(
+ u"QAndroidEventDispatcher::processEvents()"_s);
if (m_stopRequest.testAndSetAcquire(StopRequest, Stopping) && protector.acquire()) {
m_semaphore.acquire();
wakeUp();
diff --git a/src/plugins/platforms/android/qandroidinputcontext.cpp b/src/plugins/platforms/android/qandroidinputcontext.cpp
index ff0fe664514..ecbbddb2e36 100644
--- a/src/plugins/platforms/android/qandroidinputcontext.cpp
+++ b/src/plugins/platforms/android/qandroidinputcontext.cpp
@@ -26,6 +26,8 @@
QT_BEGIN_NAMESPACE
+using namespace Qt::StringLiterals;
+
namespace {
class BatchEditLock
@@ -68,7 +70,8 @@ static jfieldID m_textFieldID = 0;
static void runOnQtThread(const std::function<void()> &func)
{
- QtAndroidPrivate::AndroidDeadlockProtector protector;
+ QtAndroidPrivate::AndroidDeadlockProtector protector(
+ u"QAndroidInputContext::runOnQtThread()"_s);
if (!protector.acquire())
return;
QMetaObject::invokeMethod(m_androidInputContext, "safeCall", Qt::BlockingQueuedConnection, Q_ARG(std::function<void()>, func));
diff --git a/src/plugins/platforms/android/qandroidplatformopenglwindow.cpp b/src/plugins/platforms/android/qandroidplatformopenglwindow.cpp
index 95a4963756d..75a1c981e6c 100644
--- a/src/plugins/platforms/android/qandroidplatformopenglwindow.cpp
+++ b/src/plugins/platforms/android/qandroidplatformopenglwindow.cpp
@@ -60,9 +60,9 @@ EGLSurface QAndroidPlatformOpenGLWindow::eglSurface(EGLConfig config)
// If we haven't called createSurface() yet, call it and wait until Android has created
// the Surface
if (!m_surfaceCreated) {
- QtAndroidPrivate::AndroidDeadlockProtector protector;
+ static constexpr char funcName[] = "QAndroidPlatformOpenGLWindow::eglSurface()";
+ QtAndroidPrivate::AndroidDeadlockProtector protector(funcName);
if (!protector.acquire()) {
- static constexpr char funcName[] = "QAndroidPlatformOpenGLWindow::eglSurface()";
qFatal("Failed to acquire deadlock protector for %s.", funcName);
return m_eglSurface;
}
diff --git a/src/plugins/platforms/android/qandroidplatformvulkanwindow.cpp b/src/plugins/platforms/android/qandroidplatformvulkanwindow.cpp
index b45d473c7e3..96bdc2f63f5 100644
--- a/src/plugins/platforms/android/qandroidplatformvulkanwindow.cpp
+++ b/src/plugins/platforms/android/qandroidplatformvulkanwindow.cpp
@@ -15,6 +15,8 @@
QT_BEGIN_NAMESPACE
+using namespace Qt::StringLiterals;
+
QAndroidPlatformVulkanWindow::QAndroidPlatformVulkanWindow(QWindow *window)
: QAndroidPlatformWindow(window),
m_nativeWindow(nullptr),
@@ -88,7 +90,8 @@ VkSurfaceKHR *QAndroidPlatformVulkanWindow::vkSurface()
QMutexLocker lock(&m_surfaceMutex);
if (!m_surfaceCreated) {
- QtAndroidPrivate::AndroidDeadlockProtector protector;
+ QtAndroidPrivate::AndroidDeadlockProtector protector(
+ u"QAndroidPlatformVulkanWindow::vkSurface()"_s);
if (!protector.acquire())
return &m_vkSurface;
createSurface();