Swift macOS Process.run() 端口泄漏
Swift macOS Process.run() port leak
当前代码:
#!/usr/bin/swift
import Foundation
func runSleepProcess() {
let sleepProcess = Process()
sleepProcess.executableURL = URL(fileURLWithPath: "/bin/sleep")
sleepProcess.arguments = ["0"]
try? sleepProcess.run()
sleepProcess.waitUntilExit()
}
while true {
runSleepProcess()
}
查看activity 监视器,似乎每个循环的 mach 端口使用量增加 1。当 运行 是外部进程时,这是预期的行为吗?如果没有,我该如何修复泄漏?谢谢
这不是预期的行为,此问题已报告。解决方法是使用 posix_spawn
而不是 Process
.
当前代码:
#!/usr/bin/swift
import Foundation
func runSleepProcess() {
let sleepProcess = Process()
sleepProcess.executableURL = URL(fileURLWithPath: "/bin/sleep")
sleepProcess.arguments = ["0"]
try? sleepProcess.run()
sleepProcess.waitUntilExit()
}
while true {
runSleepProcess()
}
查看activity 监视器,似乎每个循环的 mach 端口使用量增加 1。当 运行 是外部进程时,这是预期的行为吗?如果没有,我该如何修复泄漏?谢谢
这不是预期的行为,此问题已报告。解决方法是使用 posix_spawn
而不是 Process
.