Chromium Code Reviews| Index: runtime/bin/process_linux.cc |
| diff --git a/runtime/bin/process_linux.cc b/runtime/bin/process_linux.cc |
| index 1ab9a130ae7850c9ccd128355d48bb92ad183ade..82b74e975bc473fdb06df2d30ed68ca9b3dcf3f0 100644 |
| --- a/runtime/bin/process_linux.cc |
| +++ b/runtime/bin/process_linux.cc |
| @@ -862,20 +862,16 @@ intptr_t Process::CurrentProcessId() { |
| int64_t Process::CurrentRSS() { |
| // The second value in /proc/self/statm is the current RSS in pages. |
| - File* statm = File::Open("/proc/self/statm", File::kRead); |
| + // It is not possible to use getrusage() because the interested fields are not |
| + // implemented by the linux kernel. |
| + FILE* statm = fopen("/proc/self/statm", "r"); |
| if (statm == NULL) { |
| return -1; |
| } |
| - RefCntReleaseScope<File> releaser(statm); |
| - const intptr_t statm_length = 1 * KB; |
| - void* buffer = reinterpret_cast<void*>(Dart_ScopeAllocate(statm_length)); |
| - const intptr_t statm_read = statm->Read(buffer, statm_length); |
| - if (statm_read <= 0) { |
| - return -1; |
| - } |
| int64_t current_rss_pages = 0; |
| - int matches = sscanf(reinterpret_cast<char*>(buffer), "%*s%" Pd64 "", |
| + int matches = fscanf(statm, "%*s%" Pd64 "", |
| ¤t_rss_pages); |
|
zra
2017/08/10 22:19:50
It looks like this will fit on the line above.
cbernaschina
2017/08/12 00:29:42
Done.
|
| + fclose(statm); |
|
zra
2017/08/10 22:19:50
ditto
cbernaschina
2017/08/12 00:29:42
Done.
|
| if (matches != 1) { |
| return -1; |
| } |