1
0
mirror of https://github.com/codership/wsrep-lib.git synced 2025-07-30 07:23:07 +03:00

Made client_service, transaction independent of provider.

Provider may not be loaded when client_service and
transaction are constructed.
This commit is contained in:
Teemu Ollakka
2018-06-19 14:54:58 +03:00
parent 94f77eacf0
commit 779f84e5df
8 changed files with 36 additions and 34 deletions

View File

@ -16,7 +16,7 @@ db::client::client(db::server& server,
, server_(server)
, server_state_(server.server_state())
, client_state_(mutex_, this, server_state_, client_service_, client_id, mode)
, client_service_(server_state_.provider(), client_state_)
, client_service_(client_state_)
, se_trx_(server.storage_engine())
, stats_()
{ }

View File

@ -38,8 +38,9 @@ enum wsrep::provider::status
db::client_service::replay()
{
wsrep::high_priority_context high_priority_context(client_state_);
auto ret(provider_.replay(client_state_.transaction().ws_handle(),
&client_state_));
auto ret(client_state_.provider().replay(
client_state_.transaction().ws_handle(),
&client_state_));
if (ret == wsrep::provider::success)
{
++client_state_.client()->stats_.replays;

View File

@ -15,9 +15,8 @@ namespace db
class client_service : public wsrep::client_service
{
public:
client_service(wsrep::provider& provider,
db::client_state& client_state)
: wsrep::client_service(provider)
client_service(db::client_state& client_state)
: wsrep::client_service()
, client_state_(client_state)
{ }