From 9bff9eeefc262c8509b2db7c1120f6001d65e64c Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Fri, 7 Dec 2012 15:01:56 -0600 Subject: Add level method to recursive mutex Enhance thread safety when making event calls Minor cleanup of whitespace in glib event loop --- src/kernel/qapplication.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'src/kernel/qapplication.cpp') diff --git a/src/kernel/qapplication.cpp b/src/kernel/qapplication.cpp index f3b0119..5b43301 100644 --- a/src/kernel/qapplication.cpp +++ b/src/kernel/qapplication.cpp @@ -2767,18 +2767,21 @@ bool QApplication::internalNotify( QObject *receiver, QEvent * e) if (!handled) { #if defined(QT_THREAD_SUPPORT) - bool locked = false; + int locklevel = 0; + int llcount; if (QApplication::qt_mutex) { - locked = QApplication::qt_mutex->locked(); - } - if (locked) { - QApplication::qt_mutex->unlock(); + QApplication::qt_mutex->lock(); // 1 of 2 + locklevel = qt_mutex->level() - 1; + for (llcount=0; llcountunlock(); + } + QApplication::qt_mutex->unlock(); // 2 of 2 } #endif consumed = receiver->event( e ); #if defined(QT_THREAD_SUPPORT) - if (locked) { - if (QApplication::qt_mutex) { + if (QApplication::qt_mutex) { + for (llcount=0; llcountlock(); } } -- cgit v1.2.3