--- libev/ev.c 2012/07/24 16:28:08 1.448 +++ libev/ev.c 2012/09/23 21:21:58 1.449 @@ -2030,6 +2030,7 @@ ev_feed_signal (int signum) EV_THROW { #if EV_MULTIPLICITY + ECB_MEMORY_FENCE_ACQUIRE; EV_P = signals [signum - 1].loop; if (!EV_A) @@ -3528,6 +3529,7 @@ !signals [w->signum - 1].loop || signals [w->signum - 1].loop == loop)); signals [w->signum - 1].loop = EV_A; + ECB_MEMORY_FENCE_RELEASE; #endif EV_FREQUENT_CHECK;