summaryrefslogtreecommitdiff
path: root/storage/xtradb/include/sync0sync.ic
diff options
context:
space:
mode:
Diffstat (limited to 'storage/xtradb/include/sync0sync.ic')
-rw-r--r--storage/xtradb/include/sync0sync.ic5
1 files changed, 5 insertions, 0 deletions
diff --git a/storage/xtradb/include/sync0sync.ic b/storage/xtradb/include/sync0sync.ic
index 83f28bfeded..fb24c0ec244 100644
--- a/storage/xtradb/include/sync0sync.ic
+++ b/storage/xtradb/include/sync0sync.ic
@@ -181,6 +181,11 @@ mutex_exit_func(
to wake up possible hanging threads if
they are missed in mutex_signal_object. */
+ /* We add a memory barrier to prevent reading of the
+ number of waiters before releasing the lock. */
+
+ os_mb;
+
if (mutex_get_waiters(mutex) != 0) {
mutex_signal_object(mutex);