summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniele Sciascia <daniele.sciascia@galeracluster.com>2020-10-01 11:18:54 +0200
committerDaniele Sciascia <daniele.sciascia@galeracluster.com>2020-11-09 09:22:09 +0100
commitcb3eb2711cc2fd4e2dc0ea9f0217607ce8965a21 (patch)
treebf397db201dff0a818f41f66432bcd2c027ba92a
parentf5d2d455a6fa9f55f65238f27a625efe1d8ba5d9 (diff)
downloadmariadb-git-bb-10.4-wsrep-update.tar.gz
Update wsrep-libbb-10.4-wsrep-update
-rw-r--r--sql/wsrep_client_service.cc27
-rw-r--r--sql/wsrep_client_service.h11
m---------wsrep-lib0
3 files changed, 33 insertions, 5 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<wsrep::mutex>& lock)
{
DBUG_ASSERT(m_thd == current_thd);
@@ -301,6 +312,12 @@ void Wsrep_client_service::wait_for_replayers(wsrep::unique_lock<wsrep::mutex>&
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<wsrep::mutex>&);
+ 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
-Subproject 2da6e4894e1df5d1db51db2bbc49255e02251b9
+Subproject 41a6e9dad79c921134e44cf974b6b7ca3b84e53