#include "InodeCache.hpp"
#include "Config.hpp"
-#include "Finalizer.hpp"
#include "Hash.hpp"
#include "Logging.hpp"
#include "Util.hpp"
#include <util/DirEntry.hpp>
#include <util/Fd.hpp>
+#include <util/Finalizer.hpp>
#include <util/TemporaryFile.hpp>
#include <util/conversion.hpp>
#include <util/file.hpp>
return false;
}
- Finalizer temp_file_remover([&] { unlink(tmp_file->path.c_str()); });
+ util::Finalizer temp_file_remover([&] { unlink(tmp_file->path.c_str()); });
if (!fd_is_on_known_to_work_file_system(*tmp_file->fd)) {
return false;
#include "Win32Util.hpp"
#include <Config.hpp>
-#include <Finalizer.hpp>
#include <core/exceptions.hpp>
#include <fmtmacros.hpp>
#include <util/DirEntry.hpp>
#include "Context.hpp"
#include "Depfile.hpp"
#include "File.hpp"
-#include "Finalizer.hpp"
#include "Hash.hpp"
#include "Logging.hpp"
#include "MiniTrace.hpp"
#include <core/types.hpp>
#include <storage/Storage.hpp>
#include <util/Fd.hpp>
+#include <util/Finalizer.hpp>
#include <util/TemporaryFile.hpp>
#include <util/UmaskScope.hpp>
#include <util/environment.hpp>
ctx.initialize(std::move(argv_parts.compiler_and_args),
argv_parts.config_settings);
SignalHandler signal_handler(ctx);
- Finalizer finalizer([&ctx] { finalize_at_exit(ctx); });
+ util::Finalizer finalizer([&ctx] { finalize_at_exit(ctx); });
initialize(ctx, argv, argv_parts.masquerading_as_compiler);
#include "common.hpp"
#include <Context.hpp>
-#include <Finalizer.hpp>
#include <core/exceptions.hpp>
#include <fmtmacros.hpp>
+#include <util/Finalizer.hpp>
#include <util/Tokenizer.hpp>
#include <util/expected.hpp>
#include <util/file.hpp>
// newlines a second time since we treat output as binary data. Make sure to
// switch to binary mode.
int oldmode = _setmode(fd, _O_BINARY);
- Finalizer binary_mode_restorer([=] { _setmode(fd, oldmode); });
+ util::Finalizer binary_mode_restorer([=] { _setmode(fd, oldmode); });
#endif
if (ctx.args_info.strip_diagnostics_colors) {
#include <fmtmacros.hpp>
#include <util/DirEntry.hpp>
#include <util/Fd.hpp>
+#include <util/Finalizer.hpp>
#include <util/TemporaryFile.hpp>
#include <util/expected.hpp>
#include <util/file.hpp>
# include <sys/wait.h>
#endif
-#ifdef _WIN32
-# include "Finalizer.hpp"
-#endif
-
namespace fs = util::filesystem;
#ifdef _WIN32
std::string full_path = Win32Util::add_exe_suffix(path);
fs::path tmp_file_path;
- Finalizer tmp_file_remover([&tmp_file_path] {
+ util::Finalizer tmp_file_remover([&tmp_file_path] {
if (!tmp_file_path.empty()) {
util::remove(tmp_file_path);
}
#include "DirEntry.hpp"
-#include <Finalizer.hpp>
#include <Logging.hpp>
#include <Win32Util.hpp>
#include <fmtmacros.hpp>
+#include <util/Finalizer.hpp>
#include <util/file.hpp>
#include <util/wincompat.hpp>
return false;
}
- Finalizer closer([&] { CloseHandle(handle); });
+ util::Finalizer closer([&] { CloseHandle(handle); });
switch (GetFileType(handle)) {
case FILE_TYPE_DISK: {
-// Copyright (C) 2020-2021 Joel Rosdahl and other contributors
+// Copyright (C) 2020-2023 Joel Rosdahl and other contributors
//
// See doc/AUTHORS.adoc for a complete list of contributors.
//
#include <functional>
+namespace util {
+
class Finalizer
{
public:
private:
std::function<void()> m_finalizer;
-};
+}; // namespace class Finalizer
inline Finalizer::Finalizer(std::function<void()> finalizer)
: m_finalizer(finalizer)
{
m_finalizer();
}
+
+} // namespace util
#include "file.hpp"
-#include <Finalizer.hpp>
#include <Logging.hpp>
#include <Win32Util.hpp>
#include <fmtmacros.hpp>
#include <util/Bytes.hpp>
#include <util/DirEntry.hpp>
#include <util/Fd.hpp>
+#include <util/Finalizer.hpp>
#include <util/TemporaryFile.hpp>
#include <util/expected.hpp>
#include <util/file.hpp>
// this program; if not, write to the Free Software Foundation, Inc., 51
// Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#include "../src/Finalizer.hpp"
#include "TestUtil.hpp"
#include <util/Fd.hpp>
+#include <util/Finalizer.hpp>
#include <util/wincompat.hpp>
#include "third_party/doctest.h"
++rand_iter;
});
- Finalizer reset_random_source([] { bsd_mkstemp_set_random_source(nullptr); });
+ util::Finalizer reset_random_source(
+ [] { bsd_mkstemp_set_random_source(nullptr); });
SUBCASE("successful")
{
#include "TestUtil.hpp"
-#include <Finalizer.hpp>
#include <util/DirEntry.hpp>
+#include <util/Finalizer.hpp>
#include <util/environment.hpp>
#include <util/file.hpp>
#include <util/filesystem.hpp>
FILE_ATTRIBUTE_NORMAL,
nullptr);
REQUIRE_MESSAGE(handle != INVALID_HANDLE_VALUE, "err=" << GetLastError());
- Finalizer cleanup([&] { CloseHandle(handle); });
+ util::Finalizer cleanup([&] { CloseHandle(handle); });
// Mark file as deleted. This puts it into a "pending delete" state that
// will persist until the handle is closed. Until the file is closed, new
FILE_ATTRIBUTE_NORMAL,
nullptr);
REQUIRE_MESSAGE(handle != INVALID_HANDLE_VALUE, "err=" << GetLastError());
- Finalizer cleanup([&] { CloseHandle(handle); });
+ util::Finalizer cleanup([&] { CloseHandle(handle); });
// Sanity check we can't open the file for read/write access.
REQUIRE(!util::read_file<std::string>("file"));