From 2dacc0b16e5b1056cebb3fbf0b592bd8da6885bf Mon Sep 17 00:00:00 2001 From: Lin Onetwo Date: Sat, 27 Jun 2020 12:55:52 +0800 Subject: [PATCH] feat: stop wiki before workspace remove --- public/libs/wiki/wiki-worker-mamager.js | 5 +++++ public/libs/workspaces.js | 3 +++ 2 files changed, 8 insertions(+) diff --git a/public/libs/wiki/wiki-worker-mamager.js b/public/libs/wiki/wiki-worker-mamager.js index 55958f86..ade1ea2c 100644 --- a/public/libs/wiki/wiki-worker-mamager.js +++ b/public/libs/wiki/wiki-worker-mamager.js @@ -15,3 +15,8 @@ module.exports.startWiki = function startWiki(homePath, userName, tiddlyWikiPort if (code !== 0) console.error(`[${homePath}] Worker stopped with exit code ${code}`); }); }; + +module.exports.stopWiki = function stopWiki(homePath) { + const worker = workers[homePath]; + return worker.terminate(); +}; diff --git a/public/libs/workspaces.js b/public/libs/workspaces.js index 73995e8a..e708f95a 100644 --- a/public/libs/workspaces.js +++ b/public/libs/workspaces.js @@ -9,6 +9,7 @@ const download = require('download'); const tmp = require('tmp'); const sendToAllWindows = require('./send-to-all-windows'); +const { stopWiki } = require('./wiki/wiki-worker-mamager'); const v = '14'; @@ -164,6 +165,8 @@ const removeWorkspacePicture = (id) => { }; const removeWorkspace = (id) => { + const { name } = workspaces[id]; + stopWiki(name); delete workspaces[id]; sendToAllWindows('set-workspace', id, null); settings.delete(`workspaces.${v}.${id}`);