diff options
-rw-r--r-- | runtime/base/logging.cc | 16 | ||||
-rw-r--r-- | runtime/profiler.cc | 4 |
2 files changed, 11 insertions, 9 deletions
diff --git a/runtime/base/logging.cc b/runtime/base/logging.cc index 0ae7863382..859de4bd5b 100644 --- a/runtime/base/logging.cc +++ b/runtime/base/logging.cc @@ -289,17 +289,17 @@ void LogMessage::LogLineLowStack(const char* file, unsigned int line, LogSeverit CHECK_EQ(strlen(log_characters), INTERNAL_FATAL + 1U); const char* program_name = ProgramInvocationShortName(); - write(STDERR_FILENO, program_name, strlen(program_name)); - write(STDERR_FILENO, " ", 1); - write(STDERR_FILENO, &log_characters[log_severity], 1); - write(STDERR_FILENO, " ", 1); + TEMP_FAILURE_RETRY(write(STDERR_FILENO, program_name, strlen(program_name))); + TEMP_FAILURE_RETRY(write(STDERR_FILENO, " ", 1)); + TEMP_FAILURE_RETRY(write(STDERR_FILENO, &log_characters[log_severity], 1)); + TEMP_FAILURE_RETRY(write(STDERR_FILENO, " ", 1)); // TODO: pid and tid. - write(STDERR_FILENO, file, strlen(file)); + TEMP_FAILURE_RETRY(write(STDERR_FILENO, file, strlen(file))); // TODO: line. UNUSED(line); - write(STDERR_FILENO, "] ", 2); - write(STDERR_FILENO, message, strlen(message)); - write(STDERR_FILENO, "\n", 1); + TEMP_FAILURE_RETRY(write(STDERR_FILENO, "] ", 2)); + TEMP_FAILURE_RETRY(write(STDERR_FILENO, message, strlen(message))); + TEMP_FAILURE_RETRY(write(STDERR_FILENO, "\n", 1)); #endif } diff --git a/runtime/profiler.cc b/runtime/profiler.cc index 5354fd8486..3b0e6c1062 100644 --- a/runtime/profiler.cc +++ b/runtime/profiler.cc @@ -302,7 +302,9 @@ uint32_t BackgroundMethodSamplingProfiler::WriteProfile() { } while (length > 0); // Truncate the file to the new length. - ftruncate(fd, full_length); + if (ftruncate(fd, full_length) == -1) { + LOG(ERROR) << "Failed to truncate profile file " << full_name; + } // Now unlock the file, allowing another process in. err = flock(fd, LOCK_UN); |