diff options
Diffstat (limited to 'src/corelib/kernel')
-rw-r--r-- | src/corelib/kernel/qjnihelpers.cpp | 12 | ||||
-rw-r--r-- | src/corelib/kernel/qjnihelpers_p.h | 3 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/corelib/kernel/qjnihelpers.cpp b/src/corelib/kernel/qjnihelpers.cpp index b2a5dc7441..73b15ce46a 100644 --- a/src/corelib/kernel/qjnihelpers.cpp +++ b/src/corelib/kernel/qjnihelpers.cpp @@ -376,6 +376,18 @@ jobject QtAndroidPrivate::callOnBindListener(jobject intent) return nullptr; } +Q_GLOBAL_STATIC(QAtomicInt, g_androidDeadlockProtector); + +bool QtAndroidPrivate::acquireAndroidDeadlockProtector() +{ + return g_androidDeadlockProtector->testAndSetAcquire(0, 1); +} + +void QtAndroidPrivate::releaseAndroidDeadlockProtector() +{ + g_androidDeadlockProtector->storeRelease(0); +} + QT_END_NAMESPACE Q_CORE_EXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) diff --git a/src/corelib/kernel/qjnihelpers_p.h b/src/corelib/kernel/qjnihelpers_p.h index 2860cef4c3..c89c33b51e 100644 --- a/src/corelib/kernel/qjnihelpers_p.h +++ b/src/corelib/kernel/qjnihelpers_p.h @@ -137,6 +137,9 @@ namespace QtAndroidPrivate Q_CORE_EXPORT int acuqireServiceSetup(int flags); Q_CORE_EXPORT void setOnBindListener(OnBindListener *listener); Q_CORE_EXPORT jobject callOnBindListener(jobject intent); + + Q_CORE_EXPORT bool acquireAndroidDeadlockProtector(); + Q_CORE_EXPORT void releaseAndroidDeadlockProtector(); } #define Q_JNI_FIND_AND_CHECK_CLASS(CLASS_NAME) \ |