From: liwei Date: Thu, 12 May 2022 05:41:21 +0000 (+0800) Subject: [Service] Skip start service when app terminate & Check wrt-service launcher to 4s X-Git-Tag: submit/tizen/20220513.160022^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8a7439e26f9cd37f4d171da9e174ae87fe721b95;p=platform%2Fframework%2Fweb%2Fwrtjs.git [Service] Skip start service when app terminate & Check wrt-service launcher to 4s Now an issue happen, service app is launched for a little time, then wrt-service-launcher is killed by unknown reason, then wrt-service start to stop, guess xwalk-extension is not stopped completely, at the same time, service app is reqeusting preview, then crash happen, so do below changes. 1. Skip start service when app is terminating. 2. Check wrt-service-launcher from 2s to 4s. Change-Id: I4a7c4b946a89d1a1f6a46903e3582a1d91248888 Signed-off-by: liwei --- diff --git a/wrt_app/service/service_manager.ts b/wrt_app/service/service_manager.ts index c639eba3..de807eb8 100644 --- a/wrt_app/service/service_manager.ts +++ b/wrt_app/service/service_manager.ts @@ -24,6 +24,15 @@ function checkDyingWorker() { } } +function IsDyingWorker(id: string) { + let dyingWorkers = Object.keys(dyingWorkerQueue); + if (dyingWorkers.length && dyingWorkerQueue[id]) { + return ((dyingWorkerQueue[id] === 'will-terminate') || + (dyingWorkerQueue[id] === 'terminated')) + } + return false; +} + function createWorker(id: string, startService: string, filename: string) { if (workers[id]) { workers[id].postMessage({ type: 'wake' }); @@ -73,6 +82,10 @@ let initializeExtensionOnMain = () => { } export function startService(id: string, filename: string) { + if(IsDyingWorker(id)) { + console.debug(`startService - ${id} is in stop status, skip start`); + return; + } console.debug(`startService - ${id}`); initializeExtensionOnMain(); if (global['serviceType'] === 'STANDALONE') { diff --git a/wrt_app/service/service_runner.ts b/wrt_app/service/service_runner.ts index 405c9e96..5a1b65cd 100644 --- a/wrt_app/service/service_runner.ts +++ b/wrt_app/service/service_runner.ts @@ -49,12 +49,12 @@ let requestStopService = (id: string) => { let app: any = null; let dummyTimer: any; -let periodLauncherAlive = 20; // 2s +let periodLauncherAlive = 40; // 4s let checkLauncherAlive = (id: string) => { periodLauncherAlive--; if (!periodLauncherAlive) { - periodLauncherAlive = 20; + periodLauncherAlive = 40; if (!wrt.checkLauncherAlive(id)) { console.debug(`${id} launcher was killed.`) requestStopService(id);