From 6057940c0ca57e2a9feba9eac38daafae9b89635 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 1 May 2012 22:01:40 +0000 Subject: *** empty log message *** --- ev.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'ev.c') diff --git a/ev.c b/ev.c index 449556d..e24ed6f 100644 --- a/ev.c +++ b/ev.c @@ -1846,6 +1846,8 @@ evpipe_init (EV_P) inline_speed void evpipe_write (EV_P_ EV_ATOMIC_T *flag) { + ECB_MEMORY_FENCE; /* push out the write before this function was called, acquire flag */ + if (expect_true (*flag)) return; @@ -1914,11 +1916,15 @@ pipecb (EV_P_ ev_io *iow, int revents) pipe_write_skipped = 0; + ECB_MEMORY_FENCE; /* push out skipped, acquire flags */ + #if EV_SIGNAL_ENABLE if (sig_pending) { sig_pending = 0; + ECB_MEMORY_FENCE_RELEASE; + for (i = EV_NSIG - 1; i--; ) if (expect_false (signals [i].pending)) ev_feed_signal_event (EV_A_ i + 1); @@ -1930,6 +1936,8 @@ pipecb (EV_P_ ev_io *iow, int revents) { async_pending = 0; + ECB_MEMORY_FENCE_RELEASE; + for (i = asynccnt; i--; ) if (asyncs [i]->sent) { -- cgit v1.2.3