[HACK] Resolve race condition when booting 73/15473/2 5.99.2 flounder/5.99.2 flounder_5.99.2
authorTadao Tanikawa <tanikawa.tadao@jp.panasonic.com>
Thu, 19 Jul 2018 13:33:13 +0000 (13:33 +0000)
committerTadao Tanikawa <tanikawa.tadao@jp.panasonic.com>
Thu, 19 Jul 2018 14:34:27 +0000 (14:34 +0000)
If HomeScreen comes after Launcher is launched, HomeScreen
will miss all app's icons.

This hack is for resolving the race condition between
HomeScreen and Launcher when system booting.

Time of delay can be adjust by environment variable,
'HMI_LAUNCHER_STARTUP_DELAY'. The default delay time is 1 sec.

Bug-AGL: SPEC-1471

Change-Id: Ied744c3e322203e66dd17d68dd783ad8f5cd3880
Signed-off-by: Tadao Tanikawa <tanikawa.tadao@jp.panasonic.com>
launcher/src/main.cpp

index 50f1303..ea3ed74 100644 (file)
@@ -22,6 +22,7 @@
 #include <QtQml/QQmlContext>
 #include <QtQml/qqml.h>
 #include <QQuickWindow>
+#include <QThread>
 
 #include <qlibwindowmanager.h>
 #include "applicationlauncher.h"
@@ -143,6 +144,16 @@ int main(int argc, char *argv[])
     query.addQueryItem(QStringLiteral("token"), token);
     bindingAddress.setQuery(query);
 
+    const QByteArray hack_delay = qgetenv("HMI_LAUNCHER_STARTUP_DELAY");
+    int delay_time = 1;
+
+    if (!hack_delay.isEmpty()) {
+       delay_time = (QString::fromLocal8Bit(hack_delay)).toInt();
+    }
+
+    QThread::sleep(delay_time);
+    qDebug("Sleep %d sec to resolve race condtion between HomeScreen and Launcher", delay_time);
+
     // mail.qml loading
     QQmlApplicationEngine engine;
     engine.rootContext()->setContextProperty("layoutHandler", layoutHandler);