export function start(id: string, filename: string) {
let ids = id.split(':');
let serviceId = ids[0];
- let packageId = wrt.getPackageId(serviceId);
+ let packageId = wrt.getPackageId(id);
+ if (!packageId) {
+ console.debug(`${id}'s pkgid is empty, so stop service`);
+ requestStopService(id);
+ return;
+ }
wrt.setServiceAppId(id);
wrt.security?.dropThreadPrivilege(packageId, serviceId);
if (app.onRequest !== undefined) {
app.onRequest();
}
- if (isGlobalService()) {
- wrt.finishStartingService(id);
- }
} catch (e) {
console.debug(`exception on start: ${e}`);
requestStopService(id);
+ } finally {
+ if (isGlobalService()) {
+ wrt.finishStartingService(id);
+ }
}
}
function run() {
let id = workerData.id;
+ if (!id) {
+ console.debug('workerData.id is empty!');
+ process.exit();
+ }
+
Object.defineProperty(global, 'internalId', {
value: id,
writable: false
});
- // FIXME: this should be 'wrt.tv?.serviceMount(id)' after Tizen 6.5 release
- (wrt.tv as any)?.serviceMount(id);
-
+ wrt.tv?.serviceMount(id);
let filename = workerData.filename;
start(id, filename);
- if (!parentPort)
- return;
- parentPort.on('message', (message) => {
+ parentPort?.on('message', (message) => {
console.debug(`Received message type : ${message.type}`);
if (message.type === 'wake') {
app?.onRequest();
setTimeout(() => {
XWalkExtension.cleanup();
parentPort?.postMessage("will-terminate");
- (wrt.tv as any)?.serviceUmount(id);
+ parentPort?.close();
+ wrt.tv?.serviceUmount(id);
}, message.delay);
}
});