Commit 51d23d49 authored by Yedidya Feldblum's avatar Yedidya Feldblum Committed by Facebook Github Bot

Let FileUtil::writeFileAtomic use generic_category

Summary:
[Folly] Let `FileUtil::writeFileAtomic` use `generic_category`.

`generic_category` is the right choice overall.

And this is an excuse to decouple `FileUtil` from `Conv`.

Reviewed By: simpkins

Differential Revision: D7314184

fbshipit-source-id: fbec3e71098e3ca41b202964886b2740ca592229
parent 69e68b71
......@@ -17,8 +17,9 @@
#include <folly/FileUtil.h>
#include <cerrno>
#include <string>
#include <system_error>
#include <folly/Exception.h>
#include <folly/detail/FileUtilDetail.h>
#include <folly/portability/Fcntl.h>
#include <folly/portability/Sockets.h>
......@@ -217,15 +218,17 @@ void writeFileAtomic(
int count,
mode_t permissions) {
auto rc = writeFileAtomicNoThrow(filename, iov, count, permissions);
checkPosixError(rc, "writeFileAtomic() failed to update ", filename);
if (rc != 0) {
auto msg = std::string(__func__) + "() failed to update " + filename.str();
throw std::system_error(rc, std::generic_category(), msg);
}
}
void writeFileAtomic(StringPiece filename, ByteRange data, mode_t permissions) {
iovec iov;
iov.iov_base = const_cast<unsigned char*>(data.data());
iov.iov_len = data.size();
auto rc = writeFileAtomicNoThrow(filename, &iov, 1, permissions);
checkPosixError(rc, "writeFileAtomic() failed to update ", filename);
writeFileAtomic(filename, &iov, 1, permissions);
}
void writeFileAtomic(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment