mirror of
https://github.com/codership/wsrep-lib.git
synced 2025-07-31 18:24:25 +03:00
Fixed BF abort in sync rollback mode.
* Pass condition variable for client_state * Notify all cond waiters when changing the transcation status to aborted * Wait for aborting transaction state aborted in before_command
This commit is contained in:
@ -12,10 +12,11 @@ db::client::client(db::server& server,
|
||||
enum wsrep::client_state::mode mode,
|
||||
const db::params& params)
|
||||
: mutex_()
|
||||
, cond_()
|
||||
, params_(params)
|
||||
, server_(server)
|
||||
, server_state_(server.server_state())
|
||||
, client_state_(mutex_, this, server_state_, client_service_, client_id, mode)
|
||||
, client_state_(mutex_, cond_, this, server_state_, client_service_, client_id, mode)
|
||||
, client_service_(client_state_)
|
||||
, se_trx_(server.storage_engine())
|
||||
, stats_()
|
||||
|
@ -52,6 +52,7 @@ namespace db
|
||||
void reset_error();
|
||||
void report_progress(size_t) const;
|
||||
wsrep::default_mutex mutex_;
|
||||
wsrep::default_condition_variable cond_;
|
||||
const db::params& params_;
|
||||
db::server& server_;
|
||||
db::server_state& server_state_;
|
||||
|
@ -15,16 +15,18 @@ namespace db
|
||||
{
|
||||
public:
|
||||
client_state(wsrep::mutex& mutex,
|
||||
db::client* client,
|
||||
db::server_state& server_state,
|
||||
wsrep::client_service& client_service,
|
||||
const wsrep::client_id& client_id,
|
||||
enum wsrep::client_state::mode mode)
|
||||
wsrep::condition_variable& cond,
|
||||
db::client* client,
|
||||
db::server_state& server_state,
|
||||
wsrep::client_service& client_service,
|
||||
const wsrep::client_id& client_id,
|
||||
enum wsrep::client_state::mode mode)
|
||||
: wsrep::client_state(mutex,
|
||||
server_state,
|
||||
client_service,
|
||||
client_id,
|
||||
mode)
|
||||
cond,
|
||||
server_state,
|
||||
client_service,
|
||||
client_id,
|
||||
mode)
|
||||
, client_(client)
|
||||
, is_autocommit_(false)
|
||||
, do_2pc_(false)
|
||||
|
Reference in New Issue
Block a user