diff options
Diffstat (limited to 'storage/innobase/sync')
-rw-r--r-- | storage/innobase/sync/sync0rw.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/storage/innobase/sync/sync0rw.cc b/storage/innobase/sync/sync0rw.cc index 77a9102112f..5f617ae22f5 100644 --- a/storage/innobase/sync/sync0rw.cc +++ b/storage/innobase/sync/sync0rw.cc @@ -358,7 +358,7 @@ lock_loop: /* Set waiters before checking lock_word to ensure wake-up signal is sent. This may lead to some unnecessary signals. */ - my_atomic_store32((int32*) &lock->waiters, 1); + my_atomic_fas32((int32*) &lock->waiters, 1); if (rw_lock_s_lock_low(lock, pass, file_name, line)) { @@ -750,7 +750,7 @@ lock_loop: /* Waiters must be set before checking lock_word, to ensure signal is sent. This could lead to a few unnecessary wake-up signals. */ - my_atomic_store32((int32*) &lock->waiters, 1); + my_atomic_fas32((int32*) &lock->waiters, 1); if (rw_lock_x_lock_low(lock, pass, file_name, line)) { sync_array_free_cell(sync_arr, cell); @@ -855,7 +855,7 @@ lock_loop: /* Waiters must be set before checking lock_word, to ensure signal is sent. This could lead to a few unnecessary wake-up signals. */ - my_atomic_store32((int32*) &lock->waiters, 1); + my_atomic_fas32((int32*) &lock->waiters, 1); if (rw_lock_sx_lock_low(lock, pass, file_name, line)) { |