diff --git a/include/tao/pq/pipeline.hpp b/include/tao/pq/pipeline.hpp index 32c509f..98f1bc9 100644 --- a/include/tao/pq/pipeline.hpp +++ b/include/tao/pq/pipeline.hpp @@ -22,7 +22,6 @@ namespace tao::pq public: explicit pipeline( const std::shared_ptr< pq::connection >& connection ); - public: ~pipeline() override { try { diff --git a/src/lib/pq/pipeline.cpp b/src/lib/pq/pipeline.cpp index 5ea69c0..fc6c9cc 100644 --- a/src/lib/pq/pipeline.cpp +++ b/src/lib/pq/pipeline.cpp @@ -29,9 +29,9 @@ namespace tao::pq void pipeline::finish() { if( m_previous ) { - m_previous->connection()->exit_pipeline_mode(); current_transaction() = m_previous.get(); - m_previous.reset(); + const auto extend_lifetime = std::move( m_previous ); + connection()->exit_pipeline_mode(); } }