From ebffbc4b16bf3af0df3284be1ee53bf8901cb7e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E4=B8=87=E7=A8=8B?= <1498425439@qq.com> Date: Sun, 30 Nov 2025 14:43:40 +0800 Subject: [PATCH] fix: Too many non-blocking read actions submitted at once fixed #83 --- .../io/github/linwancen/plugin/show/cache/TaskUtils.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/github/linwancen/plugin/show/cache/TaskUtils.java b/src/main/java/io/github/linwancen/plugin/show/cache/TaskUtils.java index 8d351fa..46c4b5a 100644 --- a/src/main/java/io/github/linwancen/plugin/show/cache/TaskUtils.java +++ b/src/main/java/io/github/linwancen/plugin/show/cache/TaskUtils.java @@ -25,6 +25,10 @@ public class TaskUtils { taskMap.computeIfAbsent(project, project1 -> AppExecutorUtil.getAppScheduledExecutorService().scheduleWithFixedDelay(() -> { try { + T t = cache.get(project); + if (t == null) { + return; + } ReadAction.nonBlocking(() -> { if (project.isDisposed()) { cache.remove(project); @@ -34,13 +38,10 @@ public class TaskUtils { } return; } - T t = cache.get(project); - if (t == null) { - return; - } func.accept(t); }) .inSmartMode(project) + .coalesceBy(t) .submit(AppExecutorUtil.getAppExecutorService()); } catch (ProcessCanceledException ignored) { } catch (Throwable e) {