From 5b51ef1b6af105859c55821f3434f182e5defaa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=98=8E?= <7737673+caobug@users.noreply.github.com> Date: Sun, 24 Mar 2024 19:36:05 +0800 Subject: [PATCH] fix: fixed nettop CPU abnormal usage in some cases (#1854) --- Modules/Net/readers.swift | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Modules/Net/readers.swift b/Modules/Net/readers.swift index e36906f1..6bc4f118 100644 --- a/Modules/Net/readers.swift +++ b/Modules/Net/readers.swift @@ -244,15 +244,22 @@ internal class UsageReader: Reader { let task = Process() task.launchPath = "/usr/bin/nettop" task.arguments = ["-P", "-L", "1", "-n", "-k", "time,interface,state,rx_dupe,rx_ooo,re-tx,rtt_avg,rcvsize,tx_win,tc_class,tc_mgt,cc_algo,P,C,R,W,arch"] + task.environment = [ + "NSUnbufferedIO": "YES", + "LC_ALL": "en_US.UTF-8", + ] + let inputPipe = Pipe() let outputPipe = Pipe() let errorPipe = Pipe() defer { + inputPipe.fileHandleForWriting.closeFile() outputPipe.fileHandleForReading.closeFile() errorPipe.fileHandleForReading.closeFile() } + task.standardInput = inputPipe task.standardOutput = outputPipe task.standardError = errorPipe @@ -454,15 +461,22 @@ public class ProcessReader: Reader<[Network_Process]> { let task = Process() task.launchPath = "/usr/bin/nettop" task.arguments = ["-P", "-L", "1", "-n", "-k", "time,interface,state,rx_dupe,rx_ooo,re-tx,rtt_avg,rcvsize,tx_win,tc_class,tc_mgt,cc_algo,P,C,R,W,arch"] + task.environment = [ + "NSUnbufferedIO": "YES", + "LC_ALL": "en_US.UTF-8", + ] + let inputPipe = Pipe() let outputPipe = Pipe() let errorPipe = Pipe() defer { + inputPipe.fileHandleForWriting.closeFile() outputPipe.fileHandleForReading.closeFile() errorPipe.fileHandleForReading.closeFile() } + task.standardInput = inputPipe task.standardOutput = outputPipe task.standardError = errorPipe