From f7de5b09234e7dd735d91a7b332d841ca6c6fe53 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Tue, 28 Aug 2012 09:22:06 +0200 Subject: Logging: Remove mutex for OutputDebugString OutputDebugString seems indeed to be thread safe, at least according to http://www.unixwiz.net/techtips/outputdebugstring.html . I also didn't manage to run into any deadlocks on Windows 7 ... The comment + code was already there (in qcoreapplication_win.cpp) in the first git commit that imported Qt. Change-Id: I442e22575558958ef21ab8c6b4cc8b03aee906b2 Reviewed-by: Thiago Macieira --- src/corelib/global/qlogging.cpp | 3 --- src/testlib/qplaintestlogger.cpp | 13 ------------- 2 files changed, 16 deletions(-) (limited to 'src') diff --git a/src/corelib/global/qlogging.cpp b/src/corelib/global/qlogging.cpp index ca85ad25cb..64bc3b2726 100644 --- a/src/corelib/global/qlogging.cpp +++ b/src/corelib/global/qlogging.cpp @@ -710,9 +710,6 @@ static void qDefaultMessageHandler(QtMsgType type, const QMessageLogContext &con if (usingWinMain) #endif { - // OutputDebugString is not threadsafe. - static QBasicMutex outputDebugStringMutex; - QMutexLocker locker(&outputDebugStringMutex); OutputDebugString(reinterpret_cast(logMessage.utf16())); return; } diff --git a/src/testlib/qplaintestlogger.cpp b/src/testlib/qplaintestlogger.cpp index 5a451b331d..e4c636cfce 100644 --- a/src/testlib/qplaintestlogger.cpp +++ b/src/testlib/qplaintestlogger.cpp @@ -66,10 +66,6 @@ QT_BEGIN_NAMESPACE namespace QTest { -#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) - static CRITICAL_SECTION outputCriticalSection; -#endif - static const char *incidentType2String(QAbstractTestLogger::IncidentTypes type) { switch (type) { @@ -209,10 +205,7 @@ void QPlainTestLogger::outputMessage(const char *str) } while (!strUtf16.isEmpty()); if (stream != stdout) #elif defined(Q_OS_WIN) - EnterCriticalSection(&QTest::outputCriticalSection); - // OutputDebugString is not threadsafe OutputDebugStringA(str); - LeaveCriticalSection(&QTest::outputCriticalSection); #endif outputString(str); } @@ -310,16 +303,10 @@ void QPlainTestLogger::printBenchmarkResult(const QBenchmarkResult &result) QPlainTestLogger::QPlainTestLogger(const char *filename) : QAbstractTestLogger(filename) { -#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) - InitializeCriticalSection(&QTest::outputCriticalSection); -#endif } QPlainTestLogger::~QPlainTestLogger() { -#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) - DeleteCriticalSection(&QTest::outputCriticalSection); -#endif } void QPlainTestLogger::startLogging() -- cgit v1.2.3