diff --git a/src/main/java/com/github/sseserver/util/PlatformDependentUtil.java b/src/main/java/com/github/sseserver/util/PlatformDependentUtil.java index 27a8729..a856d14 100644 --- a/src/main/java/com/github/sseserver/util/PlatformDependentUtil.java +++ b/src/main/java/com/github/sseserver/util/PlatformDependentUtil.java @@ -105,6 +105,13 @@ public static String getHttpRequestFactory() { public static ScheduledThreadPoolExecutor newScheduled(int corePoolSize, Supplier name, Consumer exceptionConsumer) { AtomicInteger id = new AtomicInteger(); return new ScheduledThreadPoolExecutor(corePoolSize, r -> { + String name1; + try { + String nameGet = name.get(); + name1 = nameGet + id.incrementAndGet(); + } catch (Exception e) { + name1 = String.valueOf(name.getClass()) + id.incrementAndGet(); + } Thread result = new Thread(() -> { try { r.run(); @@ -115,9 +122,17 @@ public static ScheduledThreadPoolExecutor newScheduled(int corePoolSize, Supplie e.printStackTrace(); } } - }, name.get() + id.incrementAndGet()); + }, name1); result.setDaemon(true); return result; + }, (r, exe) -> { + if (!exe.isShutdown()) { + try { + exe.getQueue().put(r); + } catch (InterruptedException e) { + // ignore + } + } }); }