From 0d2e1ccdf2974655742d8530859ab62a5c53237e Mon Sep 17 00:00:00 2001 From: xiaoqidun Date: Sun, 18 Oct 2026 01:56:18 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E8=B5=84=E6=BA=90=E9=87=8A=E6=94=BE):=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=B9=B6=E8=A1=8C=E5=8F=96=E6=B6=88=E4=B8=8E?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E9=87=8A=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/webui/ofdgo_host.js | 3 ++- internal/webview/webview.go | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/assets/webui/ofdgo_host.js b/assets/webui/ofdgo_host.js index b54a7de..cb30bfa 100644 --- a/assets/webui/ofdgo_host.js +++ b/assets/webui/ofdgo_host.js @@ -168,7 +168,8 @@ class NativeHost { const cancel = () => host.call("engine.cancel", {engine, id:data.id}).catch(() => {}); controller.signal.addEventListener("abort", cancel, {once:true}); try { - await host.call("engine.start", args, controller.signal); + await host.call("engine.start", args); + if (controller.signal.aborted) cancel(); result = await completed; await host.call("engine.finish", {engine, id:data.id}); } finally { diff --git a/internal/webview/webview.go b/internal/webview/webview.go index e998558..82cfbdd 100644 --- a/internal/webview/webview.go +++ b/internal/webview/webview.go @@ -775,6 +775,8 @@ func (h *Host) close() { cancel() } engines := h.engines + results := h.batchResults + h.batchResults = nil for _, stop := range h.engineStops { stop() } @@ -784,6 +786,9 @@ func (h *Host) close() { for _, engine := range engines { _ = engine.Close() } + for _, result := range results { + h.discard(result) + } _ = h.files.close() }