Read values from /proc/[pid]/status (dotnet/corefx#41122)
authorShubham Ranjan <shubhamranjan@users.noreply.github.com>
Mon, 4 Nov 2019 03:52:19 +0000 (09:22 +0530)
committerStephen Toub <stoub@microsoft.com>
Mon, 4 Nov 2019 03:52:19 +0000 (22:52 -0500)
commit4b42cd34d55e4ede624e7a9441270c7f4a925480
tree34760637380fe6d89787a241eb7c11a0db7c3033
parent35ed2106446afff7206beda07147b85c94111b0e
Read values from /proc/[pid]/status (dotnet/corefx#41122)

* Fix dotnet/corefx#23449 - Read values from /proc/[pid]/status

* Fix tests for new returned data from /prod/[pid]/status

* Update tests of process info on OSX

* Rename property ParsedStatus.pid --> ParsedStatus.Pid

* 1. Avoid reallocation of delimiter array
2. Use tryParse instead of Parse to avoid exceptions

* Rename static field and mark it as readonly

* Change pid from /status to be read only from debug mode

* Change status file read implementation using spans

* Remove unecessary debug statement

* Revert "Remove unecessary debug statement"

This reverts commit dotnet/corefx@f60b4f3939cffc4a2753bc27981bd228a0801f79.

* Refactor logic using if statements with reduction in code redundancy

* Improve condition arrangement to avoid reading subsequent files if process name doesn't match

* Avoid failure of process info creation in case of fail read from one of many files.

* Refactor Interop.ProcFsStat for better understanding

* Change process creation logic to fail on read /stat

* Change logic for unit and non unit values in file

Commit migrated from https://github.com/dotnet/corefx/commit/8086f36db3c1091ba80d3f9dc305605a39d2936d
src/libraries/Common/src/Interop/Linux/procfs/Interop.ProcFsStat.cs
src/libraries/System.Diagnostics.Process/src/System/Diagnostics/Process.Linux.cs
src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Linux.cs
src/libraries/System.Diagnostics.Process/tests/ProcessTests.cs