summaryrefslogtreecommitdiffstats
path: root/cpukit/score/include/rtems/score/smplock.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2015-03-06 13:20:44 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2015-03-06 13:20:44 +0100
commitda06fe948c0878057e5f563ebd3dfe40c0f1b0d2 (patch)
tree1cdcc2be8050fe8584d49bd92c36d76b2a4c5620 /cpukit/score/include/rtems/score/smplock.h
parentbsps: Use interrupt lock for interrupt server (diff)
downloadrtems-da06fe948c0878057e5f563ebd3dfe40c0f1b0d2.tar.bz2
score: Fix SMP lock implementation
See also: https://nahratzah.wordpress.com/2012/10/12/a-trivial-fair-spinlock/ http://concurrencyfreaks.blogspot.de/2014/05/relaxed-atomics-optimizations-for.html
Diffstat (limited to 'cpukit/score/include/rtems/score/smplock.h')
-rw-r--r--cpukit/score/include/rtems/score/smplock.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/cpukit/score/include/rtems/score/smplock.h b/cpukit/score/include/rtems/score/smplock.h
index cc54c694df..364a722828 100644
--- a/cpukit/score/include/rtems/score/smplock.h
+++ b/cpukit/score/include/rtems/score/smplock.h
@@ -280,7 +280,7 @@ static inline void _SMP_ticket_lock_Acquire(
#endif
my_ticket =
- _Atomic_Fetch_add_uint( &lock->next_ticket, 1U, ATOMIC_ORDER_RELAXED );
+ _Atomic_Fetch_add_uint( &lock->next_ticket, 1U, ATOMIC_ORDER_ACQ_REL );
#if defined( RTEMS_PROFILING )
now_serving =