From 71ceeb5282863d6a183e7f2201d7256c10779baa Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Thu, 5 Dec 2024 17:53:13 +0800 Subject: [PATCH 1/8] . --- main/util/src/mill/util/PromptLogger.scala | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/main/util/src/mill/util/PromptLogger.scala b/main/util/src/mill/util/PromptLogger.scala index 4459d33dd39..0308267f576 100644 --- a/main/util/src/mill/util/PromptLogger.scala +++ b/main/util/src/mill/util/PromptLogger.scala @@ -63,23 +63,26 @@ private[mill] class PromptLogger( if (enableTicker) refreshPrompt() val promptUpdaterThread = new Thread( - () => + () => { + var lastUpdate = System.currentTimeMillis() while (!runningState.stopped) { - val promptUpdateInterval = - if (termDimensions._1.isDefined) promptUpdateIntervalMillis - else nonInteractivePromptUpdateIntervalMillis - - try Thread.sleep(promptUpdateInterval) + try Thread.sleep(promptUpdateIntervalMillis) catch { case e: InterruptedException => /*do nothing*/ } readTerminalDims(terminfoPath).foreach(termDimensions = _) - synchronized { - if (!runningState.paused && !runningState.stopped) refreshPrompt() + val now = System.currentTimeMillis() + if (termDimensions._1.nonEmpty || + (now - lastUpdate > nonInteractivePromptUpdateIntervalMillis)){ + lastUpdate = now + synchronized { + if (!runningState.paused && !runningState.stopped) refreshPrompt() + } } - }, + } + }, "prompt-logger-updater-thread" ) From e270c6e4bc0e300b050e089519a2217dd25a7991 Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Thu, 5 Dec 2024 19:30:22 +0800 Subject: [PATCH 2/8] format --- main/util/src/mill/util/PromptLogger.scala | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/main/util/src/mill/util/PromptLogger.scala b/main/util/src/mill/util/PromptLogger.scala index 0308267f576..4c06142ffc7 100644 --- a/main/util/src/mill/util/PromptLogger.scala +++ b/main/util/src/mill/util/PromptLogger.scala @@ -74,8 +74,10 @@ private[mill] class PromptLogger( readTerminalDims(terminfoPath).foreach(termDimensions = _) val now = System.currentTimeMillis() - if (termDimensions._1.nonEmpty || - (now - lastUpdate > nonInteractivePromptUpdateIntervalMillis)){ + if ( + termDimensions._1.nonEmpty || + (now - lastUpdate > nonInteractivePromptUpdateIntervalMillis) + ) { lastUpdate = now synchronized { if (!runningState.paused && !runningState.stopped) refreshPrompt() From 15d02cc6d9187ceba2848d6405b8163eea65e7d1 Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Thu, 5 Dec 2024 19:44:29 +0800 Subject: [PATCH 3/8] wip --- .../runner/client/MillProcessLauncher.java | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/runner/client/src/mill/runner/client/MillProcessLauncher.java b/runner/client/src/mill/runner/client/MillProcessLauncher.java index 641b078ebeb..957ae239fed 100644 --- a/runner/client/src/mill/runner/client/MillProcessLauncher.java +++ b/runner/client/src/mill/runner/client/MillProcessLauncher.java @@ -32,8 +32,8 @@ static int launchMillNoServer(String[] args) throws Exception { boolean interrupted = false; try { - Process p = configureRunMillProcess(builder, processDir); MillProcessLauncher.runTermInfoThread(processDir); + Process p = configureRunMillProcess(builder, processDir); return p.waitFor(); } catch (InterruptedException e) { @@ -230,18 +230,23 @@ static void writeTerminalDims(boolean tputExists, Path serverDir) throws Excepti Files.write(serverDir.resolve(ServerFiles.terminfo), str.getBytes()); } + public static boolean checkTputExists(){ + try { + getTerminalDim("cols", false); + getTerminalDim("lines", false); + return true; + } catch (Exception e) { + return false; + } + } + public static void runTermInfoThread(Path serverDir) throws Exception { + boolean tputExists = checkTputExists(); + + writeTerminalDims(tputExists, serverDir); Thread termInfoPropagatorThread = new Thread( () -> { try { - boolean tputExists; - try { - getTerminalDim("cols", false); - getTerminalDim("lines", false); - tputExists = true; - } catch (Exception e) { - tputExists = false; - } while (true) { writeTerminalDims(tputExists, serverDir); Thread.sleep(100); From a4402afd4115016f221c6b2c54077e3df057f77a Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Thu, 5 Dec 2024 19:45:50 +0800 Subject: [PATCH 4/8] . --- .../runner/client/MillProcessLauncher.java | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/runner/client/src/mill/runner/client/MillProcessLauncher.java b/runner/client/src/mill/runner/client/MillProcessLauncher.java index 957ae239fed..c7ac7e2678b 100644 --- a/runner/client/src/mill/runner/client/MillProcessLauncher.java +++ b/runner/client/src/mill/runner/client/MillProcessLauncher.java @@ -230,20 +230,20 @@ static void writeTerminalDims(boolean tputExists, Path serverDir) throws Excepti Files.write(serverDir.resolve(ServerFiles.terminfo), str.getBytes()); } - public static boolean checkTputExists(){ - try { - getTerminalDim("cols", false); - getTerminalDim("lines", false); - return true; - } catch (Exception e) { - return false; - } + public static boolean checkTputExists() { + try { + getTerminalDim("cols", false); + getTerminalDim("lines", false); + return true; + } catch (Exception e) { + return false; + } } - + public static void runTermInfoThread(Path serverDir) throws Exception { - boolean tputExists = checkTputExists(); + boolean tputExists = checkTputExists(); - writeTerminalDims(tputExists, serverDir); + writeTerminalDims(tputExists, serverDir); Thread termInfoPropagatorThread = new Thread( () -> { try { From 282404aaedcc7a0205af0b6c4f21fa0f41d4ba13 Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Thu, 5 Dec 2024 19:52:39 +0800 Subject: [PATCH 5/8] wip --- runner/client/src/mill/runner/client/MillClientMain.java | 9 +++++---- .../src/mill/runner/client/MillProcessLauncher.java | 2 ++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/runner/client/src/mill/runner/client/MillClientMain.java b/runner/client/src/mill/runner/client/MillClientMain.java index aecee51404e..d33205d4a55 100644 --- a/runner/client/src/mill/runner/client/MillClientMain.java +++ b/runner/client/src/mill/runner/client/MillClientMain.java @@ -2,13 +2,12 @@ import static mill.runner.client.MillProcessLauncher.millOptsFile; +import java.nio.file.Files; import java.nio.file.Path; import java.util.Arrays; import java.util.Collections; -import mill.main.client.OutFiles; -import mill.main.client.ServerCouldNotBeStarted; -import mill.main.client.ServerLauncher; -import mill.main.client.Util; + +import mill.main.client.*; import mill.main.client.lock.Locks; /** @@ -57,6 +56,8 @@ public void initServer(Path serverDir, boolean setJnaNoSys, Locks locks) } public void preRun(Path serverDir) throws Exception { + Path sandbox = serverDir.resolve(ServerFiles.sandbox); + Files.createDirectories(sandbox); MillProcessLauncher.runTermInfoThread(serverDir); } }; diff --git a/runner/client/src/mill/runner/client/MillProcessLauncher.java b/runner/client/src/mill/runner/client/MillProcessLauncher.java index c7ac7e2678b..9509eb23dd9 100644 --- a/runner/client/src/mill/runner/client/MillProcessLauncher.java +++ b/runner/client/src/mill/runner/client/MillProcessLauncher.java @@ -32,6 +32,8 @@ static int launchMillNoServer(String[] args) throws Exception { boolean interrupted = false; try { + Path sandbox = processDir.resolve(ServerFiles.sandbox); + Files.createDirectories(sandbox); MillProcessLauncher.runTermInfoThread(processDir); Process p = configureRunMillProcess(builder, processDir); return p.waitFor(); From 39b5ef439e12786a1edfe5f909e437d17a2a1a06 Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Thu, 5 Dec 2024 19:54:11 +0800 Subject: [PATCH 6/8] . --- runner/client/src/mill/runner/client/MillClientMain.java | 1 - 1 file changed, 1 deletion(-) diff --git a/runner/client/src/mill/runner/client/MillClientMain.java b/runner/client/src/mill/runner/client/MillClientMain.java index d33205d4a55..f6e9462d021 100644 --- a/runner/client/src/mill/runner/client/MillClientMain.java +++ b/runner/client/src/mill/runner/client/MillClientMain.java @@ -6,7 +6,6 @@ import java.nio.file.Path; import java.util.Arrays; import java.util.Collections; - import mill.main.client.*; import mill.main.client.lock.Locks; From b48aa48da3127f94cc82e6761a5789e5a3bfe2fc Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Fri, 6 Dec 2024 07:53:40 +0800 Subject: [PATCH 7/8] refactor --- runner/client/src/mill/runner/client/MillClientMain.java | 2 -- runner/client/src/mill/runner/client/MillProcessLauncher.java | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/runner/client/src/mill/runner/client/MillClientMain.java b/runner/client/src/mill/runner/client/MillClientMain.java index f6e9462d021..ea5de6382bd 100644 --- a/runner/client/src/mill/runner/client/MillClientMain.java +++ b/runner/client/src/mill/runner/client/MillClientMain.java @@ -55,8 +55,6 @@ public void initServer(Path serverDir, boolean setJnaNoSys, Locks locks) } public void preRun(Path serverDir) throws Exception { - Path sandbox = serverDir.resolve(ServerFiles.sandbox); - Files.createDirectories(sandbox); MillProcessLauncher.runTermInfoThread(serverDir); } }; diff --git a/runner/client/src/mill/runner/client/MillProcessLauncher.java b/runner/client/src/mill/runner/client/MillProcessLauncher.java index 9509eb23dd9..95ccfa02e77 100644 --- a/runner/client/src/mill/runner/client/MillProcessLauncher.java +++ b/runner/client/src/mill/runner/client/MillProcessLauncher.java @@ -32,8 +32,6 @@ static int launchMillNoServer(String[] args) throws Exception { boolean interrupted = false; try { - Path sandbox = processDir.resolve(ServerFiles.sandbox); - Files.createDirectories(sandbox); MillProcessLauncher.runTermInfoThread(processDir); Process p = configureRunMillProcess(builder, processDir); return p.waitFor(); @@ -243,6 +241,8 @@ public static boolean checkTputExists() { } public static void runTermInfoThread(Path serverDir) throws Exception { + Path sandbox = serverDir.resolve(ServerFiles.sandbox); + Files.createDirectories(sandbox); boolean tputExists = checkTputExists(); writeTerminalDims(tputExists, serverDir); From 6248567dbc09db57c29f66af929c6d7f3f588598 Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Fri, 6 Dec 2024 08:27:56 +0800 Subject: [PATCH 8/8] . --- runner/client/src/mill/runner/client/MillClientMain.java | 1 - 1 file changed, 1 deletion(-) diff --git a/runner/client/src/mill/runner/client/MillClientMain.java b/runner/client/src/mill/runner/client/MillClientMain.java index ea5de6382bd..24452c2ac16 100644 --- a/runner/client/src/mill/runner/client/MillClientMain.java +++ b/runner/client/src/mill/runner/client/MillClientMain.java @@ -2,7 +2,6 @@ import static mill.runner.client.MillProcessLauncher.millOptsFile; -import java.nio.file.Files; import java.nio.file.Path; import java.util.Arrays; import java.util.Collections;