diff --git a/include/wsrep/client_state.hpp b/include/wsrep/client_state.hpp index 8d02f60..b972022 100644 --- a/include/wsrep/client_state.hpp +++ b/include/wsrep/client_state.hpp @@ -1053,6 +1053,9 @@ namespace wsrep { return current_error_status_; } + + void set_operation_context(wsrep::operation_context* context); + wsrep::operation_context* operation_context(); protected: /** * Client context constuctor. This is protected so that it @@ -1065,6 +1068,7 @@ namespace wsrep const client_id& id, enum mode mode) : owning_thread_id_(wsrep::this_thread::get_id()) + , current_context_() , rollbacker_active_(false) , mutex_(mutex) , cond_(cond) @@ -1128,6 +1132,7 @@ namespace wsrep void leave_toi_common(); wsrep::thread::id owning_thread_id_; + wsrep::operation_context* current_context_; bool rollbacker_active_; wsrep::mutex& mutex_; wsrep::condition_variable& cond_; diff --git a/src/client_state.cpp b/src/client_state.cpp index c22d9b0..4ffe95f 100644 --- a/src/client_state.cpp +++ b/src/client_state.cpp @@ -764,6 +764,17 @@ int wsrep::client_state::sync_wait(int timeout) return ret; } +void wsrep::client_state::set_operation_context( + wsrep::operation_context* context) +{ + current_context_ = context; +} + +wsrep::operation_context* wsrep::client_state::operation_context() +{ + return current_context_; +} + /////////////////////////////////////////////////////////////////////////////// // Private // ///////////////////////////////////////////////////////////////////////////////