From 1f0290c37b61695797a1b2d9d0cbb27db501cba8 Mon Sep 17 00:00:00 2001 From: James Seibel Date: Thu, 12 Dec 2024 07:19:44 -0600 Subject: [PATCH] Fix thread F3 avg time >0 when runtime ratio is 1 --- .../core/util/threading/RateLimitedThreadPoolExecutor.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/com/seibel/distanthorizons/core/util/threading/RateLimitedThreadPoolExecutor.java b/core/src/main/java/com/seibel/distanthorizons/core/util/threading/RateLimitedThreadPoolExecutor.java index 909267d86..5d63f4ac8 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/util/threading/RateLimitedThreadPoolExecutor.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/util/threading/RateLimitedThreadPoolExecutor.java @@ -84,12 +84,13 @@ public class RateLimitedThreadPoolExecutor extends ThreadPoolExecutor { super.beforeExecute(thread, runnable); + long deltaMs = TimeUnit.NANOSECONDS.toMillis(this.lastRunDurationNanoTimeRef.get()); + this.runTimeInMsRollingAverage.addValue(deltaMs); + if (this.runTimeRatio < 1.0 && this.lastRunDurationNanoTimeRef.get() != -1) { try { - long deltaMs = TimeUnit.NANOSECONDS.toMillis(this.lastRunDurationNanoTimeRef.get()); - this.runTimeInMsRollingAverage.addValue(deltaMs); Thread.sleep((long) (deltaMs / this.runTimeRatio - deltaMs)); } catch (InterruptedException ignored) { }