diff --git a/packages/background-charm-service/src/main.ts b/packages/background-charm-service/src/main.ts index a389d8b0e..740ace7ad 100644 --- a/packages/background-charm-service/src/main.ts +++ b/packages/background-charm-service/src/main.ts @@ -39,15 +39,16 @@ const service = new BackgroundCharmService({ workerTimeoutMs, }); -const shutdown = () => { - // @ts-ignore: Object is possibly 'undefined' - service.stop().then(() => { - Deno.exit(0); - }); -}; +function shutdown(service: BackgroundCharmService) { + return () => { + service.stop().then(() => { + Deno.exit(0); + }); + }; +} -Deno.addSignalListener("SIGINT", shutdown); -Deno.addSignalListener("SIGTERM", shutdown); +Deno.addSignalListener("SIGINT", shutdown(service)); +Deno.addSignalListener("SIGTERM", shutdown(service)); service.initialize().then(() => { console.log("Background Charm Service started successfully"); diff --git a/packages/background-charm-service/src/service.ts b/packages/background-charm-service/src/service.ts index f66a09a2c..2a743fc23 100644 --- a/packages/background-charm-service/src/service.ts +++ b/packages/background-charm-service/src/service.ts @@ -57,11 +57,11 @@ export class BackgroundCharmService { this.charmsCell.sink((cs) => this.ensureCharms(cs)); } - stop() { + stop(): Promise[]> { // FIXME(ja): stop listening to the charms cell ? if (!this.isRunning) { console.log("Service is not running"); - return; + return Promise.resolve([]); } const promises = Array.from(this.charmSchedulers.values()).map(