diff options
author | Sergei Golubchik <sergii@pisem.net> | 2013-09-18 13:07:31 +0200 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2013-09-18 13:07:31 +0200 |
commit | 4ec2e9d7eda78d409d1b017ef4d8928fe9055438 (patch) | |
tree | 6c3a74a740d3c1c5f3a7d1f8154d8a791b435b3f /plugin/semisync | |
parent | 1a2a9d74fe1256554eceb09bbc6752a6376df87d (diff) | |
parent | 197bdbae4db78ba65f3668803bebd3c4a4509ae5 (diff) | |
download | mariadb-git-4ec2e9d7eda78d409d1b017ef4d8928fe9055438.tar.gz |
5.5 merge and fixes for compiler/test errors
Diffstat (limited to 'plugin/semisync')
-rw-r--r-- | plugin/semisync/semisync_master.cc | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/plugin/semisync/semisync_master.cc b/plugin/semisync/semisync_master.cc index 88ae34e2a2d..df1bb454527 100644 --- a/plugin/semisync/semisync_master.cc +++ b/plugin/semisync/semisync_master.cc @@ -677,15 +677,11 @@ int ReplSemiSyncMaster::commitTrx(const char* trx_wait_binlog_name, } /* Calcuate the waiting period. */ - unsigned long long diff_nsecs = - start_ts.tv_nsec + (unsigned long long)wait_timeout_ * TIME_MILLION; - abstime.tv_sec = start_ts.tv_sec; - while (diff_nsecs >= TIME_BILLION) - { - abstime.tv_sec++; - diff_nsecs -= TIME_BILLION; - } - abstime.tv_nsec = (long)diff_nsecs; + long diff_secs = (long) (wait_timeout_ / TIME_THOUSAND); + long diff_nsecs = (long) ((wait_timeout_ % TIME_THOUSAND) * TIME_MILLION); + long nsecs = start_ts.tv_nsec + diff_nsecs; + abstime.tv_sec = start_ts.tv_sec + diff_secs + nsecs/TIME_BILLION; + abstime.tv_nsec = nsecs % TIME_BILLION; /* In semi-synchronous replication, we wait until the binlog-dump * thread has received the reply on the relevant binlog segment from the |