summaryrefslogtreecommitdiff
path: root/storage/innobase/handler/ha_innodb.cc
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2019-07-24 19:43:37 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2019-07-24 21:21:54 +0300
commitab6dd774082c57f48d998e03655c06b672799b2d (patch)
tree25c14f24e255a1480a97960005e415a43a52f3d1 /storage/innobase/handler/ha_innodb.cc
parent86767f4ac15db953c85a94ed81cd374c653e79dd (diff)
downloadmariadb-git-ab6dd774082c57f48d998e03655c06b672799b2d.tar.gz
MDEV-14154: Remove ut_time_us()
Use microsecond_interval_timer() or my_interval_timer() [in nanoseconds] instead.
Diffstat (limited to 'storage/innobase/handler/ha_innodb.cc')
-rw-r--r--storage/innobase/handler/ha_innodb.cc15
1 files changed, 8 insertions, 7 deletions
diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc
index de9096c8fcb..b14fe261c13 100644
--- a/storage/innobase/handler/ha_innodb.cc
+++ b/storage/innobase/handler/ha_innodb.cc
@@ -1685,13 +1685,14 @@ innobase_srv_conc_enter_innodb(
} else if (trx->mysql_thd != NULL
&& thd_is_replication_slave_thread(trx->mysql_thd)) {
-
- UT_WAIT_FOR(
- srv_conc_get_active_threads()
- < srv_thread_concurrency,
- srv_replication_delay * 1000);
-
- } else {
+ const ulonglong end = my_interval_timer()
+ + ulonglong(srv_replication_delay) * 1000000;
+ while (srv_conc_get_active_threads()
+ >= srv_thread_concurrency
+ || my_interval_timer() >= end) {
+ os_thread_sleep(2000 /* 2 ms */);
+ }
+ } else {
srv_conc_enter_innodb(trx);
}
}