diff options
Diffstat (limited to 'runtime/exec_utils.cc')
-rw-r--r-- | runtime/exec_utils.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/runtime/exec_utils.cc b/runtime/exec_utils.cc index cc4667c3a6..929f09f784 100644 --- a/runtime/exec_utils.cc +++ b/runtime/exec_utils.cc @@ -250,11 +250,13 @@ int ExecUtils::ExecAndReturnCode(const std::vector<std::string>& arg_vector, int timeout_sec, bool* timed_out, std::string* error_msg) const { - return ExecAndReturnCode(arg_vector, timeout_sec, timed_out, /*stat=*/nullptr, error_msg); + return ExecAndReturnCode( + arg_vector, timeout_sec, ExecCallbacks(), timed_out, /*stat=*/nullptr, error_msg); } int ExecUtils::ExecAndReturnCode(const std::vector<std::string>& arg_vector, int timeout_sec, + const ExecCallbacks& callbacks, /*out*/ bool* timed_out, /*out*/ ProcessStat* stat, /*out*/ std::string* error_msg) const { @@ -271,6 +273,8 @@ int ExecUtils::ExecAndReturnCode(const std::vector<std::string>& arg_vector, return -1; } + callbacks.on_start(pid); + // Wait for subprocess to finish. int status; if (timeout_sec >= 0) { @@ -295,6 +299,8 @@ int ExecUtils::ExecAndReturnCode(const std::vector<std::string>& arg_vector, } } + callbacks.on_end(pid); + std::string local_error_msg; // TODO(jiakaiz): Use better logic to detect waitid failure. if (WaitChild(pid, arg_vector, /*no_wait=*/false, &local_error_msg) < 0 && |