aboutsummaryrefslogtreecommitdiffstats
path: root/erts/include/internal/pthread/ethr_event.h
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2011-03-07 17:04:02 +0100
committerRickard Green <[email protected]>2011-03-08 09:47:52 +0100
commita37ee29884eaaf8b177cec19821159c938ddf6ff (patch)
tree192cdf554814a4ebf6d354443a9a607417fd2efd /erts/include/internal/pthread/ethr_event.h
parent422c3eda25ce9cb67a815aac5b0254432b0d44f7 (diff)
downloadotp-a37ee29884eaaf8b177cec19821159c938ddf6ff.tar.gz
otp-a37ee29884eaaf8b177cec19821159c938ddf6ff.tar.bz2
otp-a37ee29884eaaf8b177cec19821159c938ddf6ff.zip
The emulator could get into a state where it didn't check for I/O.
Diffstat (limited to 'erts/include/internal/pthread/ethr_event.h')
-rw-r--r--erts/include/internal/pthread/ethr_event.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/erts/include/internal/pthread/ethr_event.h b/erts/include/internal/pthread/ethr_event.h
index 93da8a0429..b74b76a443 100644
--- a/erts/include/internal/pthread/ethr_event.h
+++ b/erts/include/internal/pthread/ethr_event.h
@@ -62,7 +62,7 @@ static void ETHR_INLINE
ETHR_INLINE_FUNC_NAME_(ethr_event_set)(ethr_event *e)
{
ethr_sint32_t val;
- ETHR_WRITE_MEMORY_BARRIER;
+ ETHR_MEMORY_BARRIER;
val = ethr_atomic32_xchg(&e->futex, ETHR_EVENT_ON__);
if (val == ETHR_EVENT_OFF_WAITER__) {
int res = ETHR_FUTEX__(&e->futex, ETHR_FUTEX_WAKE__, 1);
@@ -99,7 +99,7 @@ static void ETHR_INLINE
ETHR_INLINE_FUNC_NAME_(ethr_event_set)(ethr_event *e)
{
ethr_sint32_t val;
- ETHR_WRITE_MEMORY_BARRIER;
+ ETHR_MEMORY_BARRIER;
val = ethr_atomic32_xchg(&e->state, ETHR_EVENT_ON__);
if (val == ETHR_EVENT_OFF_WAITER__) {
int res = pthread_mutex_lock(&e->mtx);