diff --git a/pkgs/prod.ts b/pkgs/prod.ts index 1cceac9..c91aba3 100644 --- a/pkgs/prod.ts +++ b/pkgs/prod.ts @@ -44,14 +44,11 @@ const startMain = () => { const worker = new Worker("pkgs/index.ts"); worker.onmessage = (event) => { - if (event.data === "terminate") { - worker.terminate(); - } if (event.data === "restart") { main.old = main.process; setTimeout(() => { if (main.old) { - main.old.postMessage("stop-server"); + main.old.terminate(); } }, 1000); main.process = startMain(); diff --git a/pkgs/server/create.ts b/pkgs/server/create.ts index 7d6a965..2411af8 100644 --- a/pkgs/server/create.ts +++ b/pkgs/server/create.ts @@ -9,6 +9,7 @@ import { g } from "../utils/global"; import { parseArgs } from "./parse-args"; import { serveAPI } from "./serve-api"; import { serveWeb } from "./serve-web"; +import exitHook from "exit-hook"; export const createServer = async () => { g.router = createRouter({ strictTrailingSlash: true }); @@ -64,11 +65,8 @@ export const createServer = async () => { }; if (g.mode === "prod") { - addEventListener("message", (e) => { - if (e.data === "stop-server") { - g.server.stop(); - postMessage("terminate"); - } + exitHook((signal) => { + g.server.stop(); }); }