[PATCH] D112710: [Support] [Windows] Use RemoveFileOnSignal if unable to use the delete-on-close flag
Martin Storsjö via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 3 12:31:55 PDT 2021
This revision was automatically updated to reflect the committed changes.
Closed by commit rGa39eba720744: [Support] [Windows] Use RemoveFileOnSignal if unable to use the delete-on-close… (authored by mstorsjo).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D112710/new/
https://reviews.llvm.org/D112710
Files:
llvm/lib/Support/Path.cpp
Index: llvm/lib/Support/Path.cpp
===================================================================
--- llvm/lib/Support/Path.cpp
+++ llvm/lib/Support/Path.cpp
@@ -1212,9 +1212,7 @@
std::error_code RemoveEC;
if (Remove && !TmpName.empty()) {
RemoveEC = fs::remove(TmpName);
-#ifndef _WIN32
sys::DontRemoveFileOnSignal(TmpName);
-#endif
if (!RemoveEC)
TmpName = "";
} else {
@@ -1260,8 +1258,8 @@
if (RenameEC)
remove(TmpName);
}
- sys::DontRemoveFileOnSignal(TmpName);
#endif
+ sys::DontRemoveFileOnSignal(TmpName);
if (!RenameEC)
TmpName = "";
@@ -1283,9 +1281,8 @@
auto H = reinterpret_cast<HANDLE>(_get_osfhandle(FD));
if (std::error_code EC = setDeleteDisposition(H, false))
return errorCodeToError(EC);
-#else
- sys::DontRemoveFileOnSignal(TmpName);
#endif
+ sys::DontRemoveFileOnSignal(TmpName);
TmpName = "";
@@ -1309,17 +1306,20 @@
TempFile Ret(ResultPath, FD);
#ifdef _WIN32
auto H = reinterpret_cast<HANDLE>(_get_osfhandle(FD));
+ bool SetSignalHandler = false;
if (std::error_code EC = setDeleteDisposition(H, true)) {
Ret.RemoveOnClose = true;
+ SetSignalHandler = true;
}
#else
- if (sys::RemoveFileOnSignal(ResultPath)) {
+ bool SetSignalHandler = true;
+#endif
+ if (SetSignalHandler && sys::RemoveFileOnSignal(ResultPath)) {
// Make sure we delete the file when RemoveFileOnSignal fails.
consumeError(Ret.discard());
std::error_code EC(errc::operation_not_permitted);
return errorCodeToError(EC);
}
-#endif
return std::move(Ret);
}
} // namespace fs
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D112710.384557.patch
Type: text/x-patch
Size: 1601 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20211103/65f6f741/attachment.bin>
More information about the llvm-commits
mailing list