From ba246e99e8abaaf0f666e17836e484fca4a4289b Mon Sep 17 00:00:00 2001 From: Minghao Hu Date: Sun, 24 Dec 2023 16:21:21 +0900 Subject: [PATCH] Fix mixed sync/async ops on Process streams. --- v2rayN/v2rayN/Handler/CoreHandler.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/v2rayN/v2rayN/Handler/CoreHandler.cs b/v2rayN/v2rayN/Handler/CoreHandler.cs index 377b0758..95729e63 100644 --- a/v2rayN/v2rayN/Handler/CoreHandler.cs +++ b/v2rayN/v2rayN/Handler/CoreHandler.cs @@ -147,7 +147,7 @@ namespace v2rayN.Handler } } - private string CoreFindexe(CoreInfo coreInfo) + private string CoreFindExe(CoreInfo coreInfo) { string fileName = string.Empty; foreach (string name in coreInfo.coreExes) @@ -225,7 +225,7 @@ namespace v2rayN.Handler try { var coreInfo = LazyConfig.Instance.GetCoreInfo(ECoreType.Xray); - string fileName = CoreFindexe(coreInfo); + string fileName = CoreFindExe(coreInfo); if (fileName == "") return -1; Process p = new() @@ -269,6 +269,7 @@ namespace v2rayN.Handler if (p.WaitForExit(1000)) { + p.CancelErrorRead(); throw new Exception(p.StandardError.ReadToEnd()); } @@ -295,7 +296,7 @@ namespace v2rayN.Handler { try { - string fileName = CoreFindexe(coreInfo); + string fileName = CoreFindExe(coreInfo); if (Utils.IsNullOrEmpty(fileName)) { return null; @@ -343,6 +344,7 @@ namespace v2rayN.Handler if (proc.WaitForExit(1000)) { + proc.CancelErrorRead(); throw new Exception(displayLog ? proc.StandardError.ReadToEnd() : "启动进程失败并退出 (Failed to start the process and exited)"); }