Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
33ea555
Implement SafeProcessHandle.WaitForExit* methods
Copilot Apr 16, 2026
d2f68c9
Address PR feedback: store ProcessExitStatus in ProcessWaitState, mov…
Copilot Apr 16, 2026
33f89fc
Add comment explaining ERROR_ACCESS_DENIED handling in TerminateProce…
Copilot Apr 16, 2026
7c723d5
Address PR feedback: remove TerminateProcessCore, use SignalCore with…
Copilot Apr 16, 2026
df26b6b
address my own feedback:
adamsitnik Apr 17, 2026
5454880
Merge branch 'main' into copilot/implement-issue-126293
adamsitnik Apr 17, 2026
1fd5785
Apply suggestions from code review
adamsitnik Apr 17, 2026
fedd0fb
reduce code duplication
adamsitnik Apr 17, 2026
ef41f82
Fix _waitState lazy initialization and add signal/Process.SafeHandle …
Copilot Apr 17, 2026
d1c541c
Address code review: fix race condition in EnsureWaitStateInitialized…
Copilot Apr 17, 2026
77e5143
Merge duplicate tests into theories with bool useAsync parameter
Copilot Apr 18, 2026
77a6493
Simplify EnsureWaitStateInitialized to use ProcessWaitState.Holder(pr…
Copilot Apr 19, 2026
d09130b
Simplify wait state holder ownership: make _waitState readonly, remov…
Copilot Apr 20, 2026
d4815a0
address code review feedback and fix the implementation
adamsitnik Apr 20, 2026
7add4f0
address code review feedback: don't use an extra field to store PID o…
adamsitnik Apr 20, 2026
c0cd053
Apply suggestions from code review
adamsitnik Apr 20, 2026
5cf7e58
address code review feedback: don't use an extra field to store PID o…
adamsitnik Apr 20, 2026
ee3eeec
Change NotSupportedException to PlatformNotSupportedException for non…
Copilot Apr 20, 2026
5998a74
Merge branch 'main' into copilot/implement-issue-126293
adamsitnik Apr 20, 2026
8907972
Fix resource string grammar, update XML docs with PNSE, fix comments
Copilot Apr 20, 2026
2d458e8
Implement Process.Run, RunAsync, RunAndCaptureText, RunAndCaptureText…
Copilot Apr 20, 2026
ef3169e
Address PR feedback: use CreateStartInfo, expression-bodies, inline h…
Copilot Apr 21, 2026
7c7651f
Move MapToArgumentList from StartAndForgetTests to Helpers class
Copilot Apr 21, 2026
55c1b18
Kill process when ReadAll* throws; replace RemotelyInvokable.Dummy wi…
Copilot Apr 21, 2026
bbb0c70
Address review feedback: Process.{0} in error message, simplify timeo…
Copilot Apr 21, 2026
9ff3e62
Fix CancellationTokenSource leak in Run_WithTimeout test
Copilot Apr 21, 2026
fc2f007
Require RedirectStandardOutput/Error on PSI overloads instead of muta…
Copilot Apr 21, 2026
391c3c4
Simplify RunAsync/RunAndCaptureTextAsync: always use WaitForExitOrKil…
Copilot Apr 21, 2026
f78f6dc
Audit and improve test coverage for all API parameter combinations
Copilot Apr 21, 2026
c15a6ef
Fix CancellationTokenSource leaks in tests by using 'using' statements
Copilot Apr 21, 2026
a68f2f2
Implement Process.Run, RunAsync, RunAndCaptureText, RunAndCaptureText…
Copilot Apr 22, 2026
5ee7f40
Merge remote tracking branch after rebase onto main
Copilot Apr 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,38 @@ protected void OnExited() { }
public void Refresh() { }
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("tvos")]
[System.Runtime.Versioning.SupportedOSPlatformAttribute("maccatalyst")]
public static System.Diagnostics.ProcessExitStatus Run(System.Diagnostics.ProcessStartInfo startInfo, System.TimeSpan? timeout = default(System.TimeSpan?)) { throw null; }
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("tvos")]
[System.Runtime.Versioning.SupportedOSPlatformAttribute("maccatalyst")]
public static System.Diagnostics.ProcessExitStatus Run(string fileName, System.Collections.Generic.IList<string>? arguments = null, System.TimeSpan? timeout = default(System.TimeSpan?)) { throw null; }
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("tvos")]
[System.Runtime.Versioning.SupportedOSPlatformAttribute("maccatalyst")]
public static System.Diagnostics.ProcessTextOutput RunAndCaptureText(System.Diagnostics.ProcessStartInfo startInfo, System.TimeSpan? timeout = default(System.TimeSpan?)) { throw null; }
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("tvos")]
[System.Runtime.Versioning.SupportedOSPlatformAttribute("maccatalyst")]
public static System.Diagnostics.ProcessTextOutput RunAndCaptureText(string fileName, System.Collections.Generic.IList<string>? arguments = null, System.TimeSpan? timeout = default(System.TimeSpan?)) { throw null; }
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("tvos")]
[System.Runtime.Versioning.SupportedOSPlatformAttribute("maccatalyst")]
public static System.Threading.Tasks.Task<System.Diagnostics.ProcessTextOutput> RunAndCaptureTextAsync(System.Diagnostics.ProcessStartInfo startInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("tvos")]
[System.Runtime.Versioning.SupportedOSPlatformAttribute("maccatalyst")]
public static System.Threading.Tasks.Task<System.Diagnostics.ProcessTextOutput> RunAndCaptureTextAsync(string fileName, System.Collections.Generic.IList<string>? arguments = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("tvos")]
[System.Runtime.Versioning.SupportedOSPlatformAttribute("maccatalyst")]
public static System.Threading.Tasks.Task<System.Diagnostics.ProcessExitStatus> RunAsync(System.Diagnostics.ProcessStartInfo startInfo, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("tvos")]
[System.Runtime.Versioning.SupportedOSPlatformAttribute("maccatalyst")]
public static System.Threading.Tasks.Task<System.Diagnostics.ProcessExitStatus> RunAsync(string fileName, System.Collections.Generic.IList<string>? arguments = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("tvos")]
[System.Runtime.Versioning.SupportedOSPlatformAttribute("maccatalyst")] // this needs to come after the ios attribute due to limitations in the platform analyzer
public bool Start() { throw null; }
[System.Runtime.Versioning.UnsupportedOSPlatformAttribute("ios")]
Expand Down Expand Up @@ -320,6 +352,14 @@ public ProcessStartInfo(string fileName, System.Collections.Generic.IEnumerable<
[System.Diagnostics.CodeAnalysis.AllowNullAttribute]
public string WorkingDirectory { get { throw null; } set { } }
}
public sealed partial class ProcessTextOutput
{
public ProcessTextOutput(System.Diagnostics.ProcessExitStatus exitStatus, string standardOutput, string standardError, int processId) { throw null; }
public System.Diagnostics.ProcessExitStatus ExitStatus { get { throw null; } }
public int ProcessId { get { throw null; } }
public string StandardError { get { throw null; } }
public string StandardOutput { get { throw null; } }
}
[System.ComponentModel.DesignerAttribute("System.Diagnostics.Design.ProcessThreadDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
public partial class ProcessThread : System.ComponentModel.Component
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -363,8 +363,11 @@
<data name="InheritedHandles_MustNotContainDuplicates" xml:space="preserve">
<value>InheritedHandles must not contain duplicates.</value>
</data>
<data name="StartAndForget_UseShellExecuteNotSupported" xml:space="preserve">
<value>UseShellExecute is not supported by StartAndForget. On Windows, shell execution may not create a new process, which would make it impossible to return a valid process ID.</value>
<data name="UseShellExecuteNotSupportedForScenario" xml:space="preserve">
<value>UseShellExecute is not supported by Process.{0}. On Windows, shell execution may not create a new process, which would make it impossible to return a valid process ID.</value>
</data>
<data name="RedirectStandardOutputAndErrorRequired" xml:space="preserve">
<value>RedirectStandardOutput and RedirectStandardError must both be set to true when calling Process.{0} with a ProcessStartInfo.</value>
</data>
<data name="NotSupportedForNonChildProcess" xml:space="preserve">
<value>On Unix, it's impossible to obtain the exit status of a non-child process.</value>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
<Compile Include="System\Diagnostics\Process.Scenarios.cs" />
<Compile Include="System\Diagnostics\ProcessExitStatus.cs" />
<Compile Include="System\Diagnostics\ProcessOutputLine.cs" />
<Compile Include="System\Diagnostics\ProcessTextOutput.cs" />
<Compile Include="System\Diagnostics\ProcessInfo.cs" />
<Compile Include="System\Diagnostics\ProcessModule.cs" />
<Compile Include="System\Diagnostics\ProcessModuleCollection.cs" />
Expand Down
Loading
Loading