From 0ce03b53311e51b61a4cd11f20d343f87fd1d225 Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Tue, 2 Dec 2014 13:38:06 -0800 Subject: [PATCH] Work around qRegisterMetaType race condition There appears to be a threading issue in qRegisterMetaType which can cause it to throw a qWarning about duplicate type converters. This is caused by a race condition in the Qt code. Still working with them on tracking down the bug. For now we register the type which is giving us problems here while we only have the main thread. That should prevent it from hitting the race condition later on in the code. --- src/main.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main.cc b/src/main.cc index 3712d74..e85b8cd 100644 --- a/src/main.cc +++ b/src/main.cc @@ -139,6 +139,13 @@ int main(int argc, char *argv[]) QGCApplication* app = new QGCApplication(argc, argv, runUnitTests); Q_CHECK_PTR(app); + // There appears to be a threading issue in qRegisterMetaType which can cause it to throw a qWarning + // about duplicate type converters. This is caused by a race condition in the Qt code. Still working + // with them on tracking down the bug. For now we register the type which is giving us problems here + // while we only have the main thread. That should prevent it from hitting the race condition later + // on in the code. + qRegisterMetaType > >(); + app->_initCommon(); int exitCode;