diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index 18d9334acdac17d3b583efabb4e2eeb116cbb5a9..d480ec17b4ad33498ca1a845ebc0fb1a622cb04a 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -42,8 +42,6 @@ set(libcaosdb_INCL ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/utility.h ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/value.h ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/register_file_upload_handler.h - # TODO this file is still missing - # ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/register_file_download_handler.h ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/upload_request_handler.h ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/download_request_handler.h ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/file_writer.h diff --git a/include/caosdb/logging.h b/include/caosdb/logging.h index a119c9cfa2b7c740a63ea355e3ede80187a41305..896b16d9091b7e4fff10f5157fa97a029e55f9af 100644 --- a/include/caosdb/logging.h +++ b/include/caosdb/logging.h @@ -30,11 +30,11 @@ #include <boost/log/utility/setup/settings.hpp> // for settings #include <boost/smart_ptr/intrusive_ptr.hpp> // for intrusive_ptr #include <boost/smart_ptr/intrusive_ref_counter.hpp> // for intrusive_p... -#include <boost/log/core/record.hpp> // for record -#include <boost/log/detail/attachable_sstream_buf.hpp> // for basic_ostri... -#include <boost/preprocessor/seq/limits/enum_256.hpp> // for BOOST_PP_SE... -#include <boost/preprocessor/seq/limits/size_256.hpp> // for BOOST_PP_SE... -#include <iosfwd> // for streamsize +#include <boost/log/core/record.hpp> // for record +#include <boost/log/detail/attachable_sstream_buf.hpp> // for basic_ostri... +#include <boost/preprocessor/seq/limits/enum_256.hpp> // for BOOST_PP_SE... +#include <boost/preprocessor/seq/limits/size_256.hpp> // for BOOST_PP_SE... +#include <iosfwd> // for streamsize #include <memory> // for shared_ptr #include <string> // for string #include <vector> // for vector diff --git a/src/caosdb/transaction.cpp b/src/caosdb/transaction.cpp index 0a17bc9790cac73592342292bd62a32855b75e27..2507287b602909747dc2180dc5b96f250f90fa0f 100644 --- a/src/caosdb/transaction.cpp +++ b/src/caosdb/transaction.cpp @@ -441,20 +441,17 @@ auto Transaction::ProcessCalls() -> TransactionStatus { if (!res) { // The handler has finished it's work result = handler_->GetStatus(); - handler_.reset(); return result; } } else { std::string description("Invalid tag delivered by notification queue."); CAOSDB_LOG_ERROR(logger_name) << description; - handler_.reset(); return TransactionStatus::RPC_ERROR(description); } } break; case NextStatus::SHUTDOWN: { CAOSDB_LOG_ERROR(logger_name) << "Notification queue has been shut down unexpectedly."; result = handler_->GetStatus(); - handler_.reset(); return result; } break; case NextStatus::TIMEOUT: { @@ -463,7 +460,6 @@ auto Transaction::ProcessCalls() -> TransactionStatus { default: CAOSDB_LOG_FATAL(logger_name) << "Got an invalid NextStatus from CompletionQueue."; result = handler_->GetStatus(); - handler_.reset(); return result; } } @@ -494,6 +490,10 @@ void Transaction::Cancel() { while (completion_queue.Next(&ignoredTag, &ok)) { ; } + + if (transaction_future.valid()) { + transaction_future.wait(); + } } } // namespace caosdb::transaction diff --git a/src/caosdb/unary_rpc_handler.cpp b/src/caosdb/unary_rpc_handler.cpp index 0c324624a07b532fa28e9f58baeb5860eb2783b9..4db2a949cc2667b4f145a7ef012bbfa68eb2c193 100644 --- a/src/caosdb/unary_rpc_handler.cpp +++ b/src/caosdb/unary_rpc_handler.cpp @@ -65,6 +65,7 @@ namespace caosdb::transaction { bool UnaryRpcHandler::OnNext(bool ok) { + CAOSDB_LOG_TRACE_ENTER_AND_LEAVE(logger_name, "UnaryRpcHandler::OnNext(bool)") try { if (ok) { if (state_ == CallState::NewCall) { @@ -112,7 +113,7 @@ void UnaryRpcHandler::Cancel() { } void UnaryRpcHandler::handleCallCompleteState() { - CAOSDB_LOG_TRACE(logger_name) << "Enter UnaryRpcHandler::handleCallCompleteState"; + CAOSDB_LOG_TRACE_ENTER_AND_LEAVE(logger_name, "UnaryRpcHandler::handleCallCompleteState()") switch (status_.error_code()) { case grpc::OK: @@ -127,8 +128,6 @@ void UnaryRpcHandler::handleCallCompleteState() { << "): " << description; break; } - - CAOSDB_LOG_TRACE(logger_name) << "Leave UnaryRpcHandler::handleCallCompleteState"; } } // namespace caosdb::transaction