X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flibelogind%2Fsd-event%2Fsd-event.c;h=2b8d1b87ed3925c9c3462eb57b097cee798f835a;hp=cc8bc50c04a8abca55400a50b66a4037687ccdc4;hb=14628e578fa89aebb6386c6c3a0970292913de29;hpb=7b2e8dae408423e052caee0c448de5a1b5908676;ds=sidebyside diff --git a/src/libelogind/sd-event/sd-event.c b/src/libelogind/sd-event/sd-event.c index cc8bc50c0..2b8d1b87e 100644 --- a/src/libelogind/sd-event/sd-event.c +++ b/src/libelogind/sd-event/sd-event.c @@ -474,6 +474,9 @@ static int source_io_unregister(sd_event_source *s) { assert(s); assert(s->type == SOURCE_IO); + if (event_pid_changed(s->event)) + return 0; + if (!s->io.registered) return 0; @@ -604,6 +607,9 @@ static int event_update_signal_fd(sd_event *e) { assert(e); + if (event_pid_changed(e)) + return 0; + add_to_epoll = e->signal_fd < 0; r = signalfd(e->signal_fd, &e->sigset, SFD_NONBLOCK|SFD_CLOEXEC);