summaryrefslogtreecommitdiff
path: root/storage/innobase/sync/sync0arr.cc
diff options
context:
space:
mode:
Diffstat (limited to 'storage/innobase/sync/sync0arr.cc')
-rw-r--r--storage/innobase/sync/sync0arr.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/storage/innobase/sync/sync0arr.cc b/storage/innobase/sync/sync0arr.cc
index 6fad5f7d9ba..f643e5b794f 100644
--- a/storage/innobase/sync/sync0arr.cc
+++ b/storage/innobase/sync/sync0arr.cc
@@ -749,6 +749,7 @@ sync_arr_cell_can_wake_up(
mutex = static_cast<ib_mutex_t*>(cell->wait_object);
+ os_rmb;
if (mutex_get_lock_word(mutex) == 0) {
return(TRUE);
@@ -758,7 +759,7 @@ sync_arr_cell_can_wake_up(
lock = static_cast<rw_lock_t*>(cell->wait_object);
- os_rmb;
+ os_rmb;
if (lock->lock_word > 0) {
/* Either unlocked or only read locked. */
@@ -770,7 +771,7 @@ sync_arr_cell_can_wake_up(
lock = static_cast<rw_lock_t*>(cell->wait_object);
/* lock_word == 0 means all readers have left */
- os_rmb;
+ os_rmb;
if (lock->lock_word == 0) {
return(TRUE);
@@ -779,7 +780,7 @@ sync_arr_cell_can_wake_up(
lock = static_cast<rw_lock_t*>(cell->wait_object);
/* lock_word > 0 means no writer or reserved writer */
- os_rmb;
+ os_rmb;
if (lock->lock_word > 0) {
return(TRUE);