summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Rosdahl <joel@rosdahl.net>2022-11-13 09:48:10 +0100
committerJoel Rosdahl <joel@rosdahl.net>2022-11-13 16:34:54 +0100
commit4905b1afacb01bff907b89dd4b05dff66b31790b (patch)
tree2be665d812fe55f216650f5b0487c1b92988a5c8
parent7063aaf40ec5c9d14c40321951e99c651ac20e32 (diff)
downloadccache-4905b1afacb01bff907b89dd4b05dff66b31790b.tar.gz
perf: Optimize util::write_file for empty data
-rw-r--r--src/util/file.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/util/file.cpp b/src/util/file.cpp
index db0f4e83..7b718969 100644
--- a/src/util/file.cpp
+++ b/src/util/file.cpp
@@ -296,7 +296,7 @@ nonstd::expected<void, std::string>
write_fd(int fd, const void* data, size_t size)
{
int64_t written = 0;
- do {
+ while (static_cast<size_t>(written) < size) {
const auto count =
write(fd, static_cast<const uint8_t*>(data) + written, size - written);
if (count == -1) {
@@ -306,7 +306,7 @@ write_fd(int fd, const void* data, size_t size)
} else {
written += count;
}
- } while (static_cast<size_t>(written) < size);
+ }
return {};
}