summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root>2012-09-23 21:21:58 +0000
committerroot <root>2012-09-23 21:21:58 +0000
commite2c3840a943ea84f48f498446c41481d156adc4f (patch)
treeee9b21801849b087854517f1ca5f2cd3cad09922
parent2a7a247b8106b570bd193801b4739d5a755ae1c7 (diff)
*** empty log message ***
-rw-r--r--Changes1
-rw-r--r--ev.c2
2 files changed, 3 insertions, 0 deletions
diff --git a/Changes b/Changes
index 54c1640..e9a05b5 100644
--- a/Changes
+++ b/Changes
@@ -11,6 +11,7 @@ TODO: document the special problem of signals around fork.
TODO: store pid for each signal
TODO: document file descriptor usage per loop
TODO: store loop pid_t and compare isndie signal handler,store 1 for same, 2 for differign pid, clean up in loop_fork
+TODO: embed watchers need updating when fd changes
- destroying a non-default loop would stop the global waitpid
watcher (Denis Bilenko).
- queueing pending watchers of higher priority from a watcher now invokes
diff --git a/ev.c b/ev.c
index 5885818..45a5e29 100644
--- a/ev.c
+++ b/ev.c
@@ -2030,6 +2030,7 @@ void
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 @@ ev_signal_start (EV_P_ ev_signal *w) EV_THROW
!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;