diff options
Diffstat (limited to 'storage/innobase/sync/sync0arr.cc')
-rw-r--r-- | storage/innobase/sync/sync0arr.cc | 7 |
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); |