From 15ac33ddcf0e8b1178a7f9256f3d3fb7600f39b7 Mon Sep 17 00:00:00 2001 From: Guillaume Nodet Date: Fri, 3 Sep 2021 17:14:55 +0200 Subject: [PATCH] Fix CPU loop in sync server --- .../main/java/org/mvndaemon/mvnd/sync/IpcServer.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sync/src/main/java/org/mvndaemon/mvnd/sync/IpcServer.java b/sync/src/main/java/org/mvndaemon/mvnd/sync/IpcServer.java index 7a9220834..5e3c64260 100644 --- a/sync/src/main/java/org/mvndaemon/mvnd/sync/IpcServer.java +++ b/sync/src/main/java/org/mvndaemon/mvnd/sync/IpcServer.java @@ -298,10 +298,19 @@ private void use() { private void expirationCheck() { while (true) { long current = System.nanoTime(); - if (current - lastUsed > idleTimeout) { + long left = (lastUsed + idleTimeout) - current; + if (left < 0) { info("IpcServer expired, closing"); close(); break; + } else { + try { + Thread.sleep(TimeUnit.NANOSECONDS.toMillis(left)); + } catch (InterruptedException e) { + info("IpcServer expiration check interrupted, closing"); + close(); + break; + } } } }