diff options
| author | 2020-10-21 12:28:51 +0000 | |
|---|---|---|
| committer | 2020-10-21 12:28:51 +0000 | |
| commit | 1c59181ee27b0031abf191f770bf1aae3d7ef8e3 (patch) | |
| tree | 7ae594b04928a32140f1fdf689e89dce874f9f62 /cmds/dumpstate/DumpPool.cpp | |
| parent | fd292c55d349b5b41b9c8e7bf19fb1da8ca5b1be (diff) | |
| parent | a9a4d8964afd2d7c132eae4444a64cbd71eab849 (diff) | |
Faster bugreports (2/n) am: 1c855127ea am: a9a4d8964a
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1441343
Change-Id: Iea87ff1490127c86083075be6c60a55f35a79503
Diffstat (limited to 'cmds/dumpstate/DumpPool.cpp')
| -rw-r--r-- | cmds/dumpstate/DumpPool.cpp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/cmds/dumpstate/DumpPool.cpp b/cmds/dumpstate/DumpPool.cpp index 7324ead7c6..e174c8eff3 100644 --- a/cmds/dumpstate/DumpPool.cpp +++ b/cmds/dumpstate/DumpPool.cpp @@ -33,7 +33,8 @@ namespace dumpstate { const std::string DumpPool::PREFIX_TMPFILE_NAME = "dump-tmp."; -DumpPool::DumpPool(const std::string& tmp_root) : tmp_root_(tmp_root), shutdown_(false) { +DumpPool::DumpPool(const std::string& tmp_root) : tmp_root_(tmp_root), shutdown_(false), + log_duration_(true) { assert(!tmp_root.empty()); deleteTempFiles(tmp_root_); } @@ -99,6 +100,26 @@ void DumpPool::waitForTask(const std::string& task_name, const std::string& titl } } +void DumpPool::setLogDuration(bool log_duration) { + log_duration_ = log_duration; +} + +template <> +void DumpPool::invokeTask<std::function<void()>>(std::function<void()> dump_func, + const std::string& duration_title, int out_fd) { + DurationReporter duration_reporter(duration_title, /*logcat_only =*/!log_duration_, + /*verbose =*/false, out_fd); + std::invoke(dump_func); +} + +template <> +void DumpPool::invokeTask<std::function<void(int)>>(std::function<void(int)> dump_func, + const std::string& duration_title, int out_fd) { + DurationReporter duration_reporter(duration_title, /*logcat_only =*/!log_duration_, + /*verbose =*/false, out_fd); + std::invoke(dump_func, out_fd); +} + std::unique_ptr<DumpPool::TmpFile> DumpPool::createTempFile() { auto tmp_file_ptr = std::make_unique<TmpFile>(); std::string file_name_format = "%s/" + PREFIX_TMPFILE_NAME + "XXXXXX"; |