X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flibsystemd-bus%2Fsd-event.c;h=d01e82d94560695764f41a356fb5eef85ebd9681;hp=8025d24bb7e34d1f0c0b3e7b1b6e7d7dc0c651d6;hb=0cc1125ae10a216f2b27cb2828849ac1beb6a1b1;hpb=afc6adb5ec7e73bc13156c43f52fb015cd80cc68 diff --git a/src/libsystemd-bus/sd-event.c b/src/libsystemd-bus/sd-event.c index 8025d24bb..d01e82d94 100644 --- a/src/libsystemd-bus/sd-event.c +++ b/src/libsystemd-bus/sd-event.c @@ -1241,6 +1241,7 @@ _public_ int sd_event_source_set_time(sd_event_source *s, uint64_t usec) { return 0; s->time.next = usec; + source_set_pending(s, false); if (s->type == SOURCE_REALTIME) { prioq_reshuffle(s->event->realtime_earliest, s, &s->time.earliest_index); @@ -1906,8 +1907,12 @@ _public_ int sd_event_default(sd_event **ret) { _public_ int sd_event_get_tid(sd_event *e, pid_t *tid) { assert_return(e, -EINVAL); assert_return(tid, -EINVAL); - assert_return(e->tid != 0, -ENXIO); + assert_return(!event_pid_changed(e), -ECHILD); - *tid = e->tid; - return 0; + if (e->tid != 0) { + *tid = e->tid; + return 0; + } + + return -ENXIO; }