From cb3eb2711cc2fd4e2dc0ea9f0217607ce8965a21 Mon Sep 17 00:00:00 2001 From: Daniele Sciascia Date: Thu, 1 Oct 2020 11:18:54 +0200 Subject: Update wsrep-lib --- sql/wsrep_client_service.cc | 27 ++++++++++++++++++++++----- sql/wsrep_client_service.h | 11 +++++++++++ wsrep-lib | 2 +- 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/sql/wsrep_client_service.cc b/sql/wsrep_client_service.cc index 20bb7748a95..e563a0dba2d 100644 --- a/sql/wsrep_client_service.cc +++ b/sql/wsrep_client_service.cc @@ -246,6 +246,16 @@ void Wsrep_client_service::will_replay() mysql_mutex_unlock(&LOCK_wsrep_replaying); } +void Wsrep_client_service::signal_replayed() +{ + DBUG_ASSERT(m_thd == current_thd); + mysql_mutex_lock(&LOCK_wsrep_replaying); + --wsrep_replaying; + DBUG_ASSERT(wsrep_replaying >= 0); + mysql_cond_broadcast(&COND_wsrep_replaying); + mysql_mutex_unlock(&LOCK_wsrep_replaying); +} + enum wsrep::provider::status Wsrep_client_service::replay() { @@ -274,14 +284,15 @@ enum wsrep::provider::status Wsrep_client_service::replay() } delete replayer_thd; - - mysql_mutex_lock(&LOCK_wsrep_replaying); - --wsrep_replaying; - mysql_cond_broadcast(&COND_wsrep_replaying); - mysql_mutex_unlock(&LOCK_wsrep_replaying); DBUG_RETURN(ret); } +enum wsrep::provider::status Wsrep_client_service::replay_unordered() +{ + DBUG_ASSERT(0); + return wsrep::provider::error_not_implemented; +} + void Wsrep_client_service::wait_for_replayers(wsrep::unique_lock& lock) { DBUG_ASSERT(m_thd == current_thd); @@ -301,6 +312,12 @@ void Wsrep_client_service::wait_for_replayers(wsrep::unique_lock& lock.lock(); } +enum wsrep::provider::status Wsrep_client_service::commit_by_xid() +{ + DBUG_ASSERT(0); + return wsrep::provider::error_not_implemented; +} + void Wsrep_client_service::debug_sync(const char* sync_point) { DBUG_ASSERT(m_thd == current_thd); diff --git a/sql/wsrep_client_service.h b/sql/wsrep_client_service.h index aa58d99c3cf..253d2f43ac3 100644 --- a/sql/wsrep_client_service.h +++ b/sql/wsrep_client_service.h @@ -48,8 +48,19 @@ public: void emergency_shutdown() { throw wsrep::not_implemented_error(); } void will_replay(); + void signal_replayed(); enum wsrep::provider::status replay(); + enum wsrep::provider::status replay_unordered(); void wait_for_replayers(wsrep::unique_lock&); + enum wsrep::provider::status commit_by_xid(); + bool is_explicit_xa() + { + return false; + } + bool is_xa_rollback() + { + return false; + } void debug_sync(const char*); void debug_crash(const char*); int bf_rollback(); diff --git a/wsrep-lib b/wsrep-lib index 2da6e4894e1..41a6e9dad79 160000 --- a/wsrep-lib +++ b/wsrep-lib @@ -1 +1 @@ -Subproject commit 2da6e4894e1df5d1db51db2bbc49255e02251b9d +Subproject commit 41a6e9dad79c921134e44cf974b6b7ca3b84e538 -- cgit v1.2.1