diff --git a/tea/reader.cpp b/tea/reader.cpp index 6a2fd644..23a0f7f4 100644 --- a/tea/reader.cpp +++ b/tea/reader.cpp @@ -67,7 +67,6 @@ #include "tea/table/filter_convert.h" #include "tea/table/gp_funcs.h" #include "tea/table/shared_state.h" -#include "tea/util/defer.h" #include "tea/util/logger.h" #include "tea/util/measure.h" #include "tea/util/multishot_timer.h" @@ -109,7 +108,7 @@ class LoggingInputFile : public iceberg::InputFileWrapper { arrow::Result ReadAt(int64_t position, int64_t nbytes, void* out) override { metrics_->wait_read_stats->Resume(); - Defer defer([&]() { metrics_->wait_read_stats->Suspend(); }); + iceberg::Defer defer([&]() { metrics_->wait_read_stats->Suspend(); }); TakeRequestIntoAccount(nbytes); auto result = InputFileWrapper::ReadAt(position, nbytes, out); if (!result.ok()) { @@ -120,7 +119,7 @@ class LoggingInputFile : public iceberg::InputFileWrapper { arrow::Result Read(int64_t nbytes, void* out) override { metrics_->wait_read_stats->Resume(); - Defer defer([&]() { metrics_->wait_read_stats->Suspend(); }); + iceberg::Defer defer([&]() { metrics_->wait_read_stats->Suspend(); }); TakeRequestIntoAccount(nbytes); auto result = InputFileWrapper::Read(nbytes, out); if (!result.ok()) { @@ -131,7 +130,7 @@ class LoggingInputFile : public iceberg::InputFileWrapper { arrow::Result> Read(int64_t nbytes) override { metrics_->wait_read_stats->Resume(); - Defer defer([&]() { metrics_->wait_read_stats->Suspend(); }); + iceberg::Defer defer([&]() { metrics_->wait_read_stats->Suspend(); }); TakeRequestIntoAccount(nbytes); auto result = InputFileWrapper::Read(nbytes); if (!result.ok()) { diff --git a/tea/smoke_test/negative_server_test.cpp b/tea/smoke_test/negative_server_test.cpp index b3ad732f..f5ca3731 100644 --- a/tea/smoke_test/negative_server_test.cpp +++ b/tea/smoke_test/negative_server_test.cpp @@ -5,6 +5,7 @@ #include "arrow/status.h" #include "gtest/gtest.h" +#include "iceberg/common/defer.h" #include "tea/smoke_test/environment.h" #include "tea/smoke_test/pq.h" @@ -20,15 +21,7 @@ namespace { class NegativeServer : public TeaTest {}; } // namespace -class Defer { - public: - explicit Defer(const std::function& func) : func_(func) {} - - ~Defer() { func_(); } - - private: - std::function func_; -}; +using Defer = iceberg::Defer; TEST_F(NegativeServer, NoRedis) { if (Environment::GetProfile() != "samovar") { diff --git a/tea/smoke_test/samovar_test.cpp b/tea/smoke_test/samovar_test.cpp index 3eefc5ca..90a9a6e6 100644 --- a/tea/smoke_test/samovar_test.cpp +++ b/tea/smoke_test/samovar_test.cpp @@ -6,6 +6,7 @@ #include "arrow/status.h" #include "gtest/gtest.h" +#include "iceberg/common/defer.h" #include "tea/common/config.h" #include "tea/samovar/network_layer/backoff.h" @@ -41,15 +42,7 @@ namespace { class SamovarTest : public TeaTest {}; } // namespace -class Defer { - public: - explicit Defer(const std::function& func) : func_(func) {} - - ~Defer() { func_(); } - - private: - std::function func_; -}; +using Defer = iceberg::Defer; TEST_F(SamovarTest, NoRedis) { if (Environment::GetProfile() != "samovar") { diff --git a/tea/util/defer.h b/tea/util/defer.h deleted file mode 100644 index 2d3ea6de..00000000 --- a/tea/util/defer.h +++ /dev/null @@ -1,23 +0,0 @@ -#pragma once - -#include -#include - -namespace tea { - -class Defer { - public: - explicit Defer(std::function callback) : callback_(std::move(callback)) {} - - ~Defer() { - try { - callback_(); - } catch (...) { - } - } - - private: - std::function callback_; -}; - -} // namespace tea