diff --git a/src/helpers/installV8Cache.ts b/src/helpers/installV8Cache.ts index f791093f..ba3c1c81 100644 --- a/src/helpers/installV8Cache.ts +++ b/src/helpers/installV8Cache.ts @@ -1,3 +1,3 @@ import { install } from 'v8-compile-cache-lib'; -install(); +export const uninstall = install(); diff --git a/src/main.ts b/src/main.ts index 69ebe56e..b63cfded 100755 --- a/src/main.ts +++ b/src/main.ts @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/no-misused-promises */ -import './helpers/installV8Cache'; +import { uninstall } from './helpers/installV8Cache'; import 'source-map-support/register'; import 'reflect-metadata'; import './helpers/singleInstance'; @@ -194,6 +194,7 @@ app.on( }, ); app.on('quit', () => { + uninstall?.uninstall(); logger.info('App quit'); }); diff --git a/src/services/wiki/index.ts b/src/services/wiki/index.ts index 89b4c84f..4a85f411 100644 --- a/src/services/wiki/index.ts +++ b/src/services/wiki/index.ts @@ -196,6 +196,7 @@ export class Wiki implements IWikiService { } clearInterval(this.wikiSyncIntervals[wikiFolderLocation]); try { + await worker.beforeExit(); await Thread.terminate(worker); await delay(100); } catch (error) { diff --git a/src/services/wiki/wikiWorker.ts b/src/services/wiki/wikiWorker.ts index 5c1aaace..09fc634e 100644 --- a/src/services/wiki/wikiWorker.ts +++ b/src/services/wiki/wikiWorker.ts @@ -1,7 +1,7 @@ /** * Worker environment is not part of electron environment, so don't import "@/constants/paths" here, as its process.resourcesPath will become undefined and throw Errors */ -import '@/helpers/installV8Cache'; +import { uninstall } from '@/helpers/installV8Cache'; import 'source-map-support/register'; import { expose } from 'threads/worker'; import path from 'path'; @@ -198,12 +198,17 @@ function packetHTMLFromWikiFolder(folderWikiPath: string, saveWikiHtmlFolder: st }); } +function beforeExit(): void { + uninstall?.uninstall(); +} + const wikiWorker = { startNodeJSWiki, getTiddlerFileMetadata: (tiddlerTitle: string) => wikiInstance?.boot?.files?.[tiddlerTitle], executeZxScript, extractWikiHTML, packetHTMLFromWikiFolder, + beforeExit, }; export type WikiWorker = typeof wikiWorker; expose(wikiWorker);