[systemd-devel] sd_bus_get_timeout returns absolute time despite what's documented
Stanislav Angelovič
stanislav.angelovic at protonmail.com
Mon Jan 9 12:50:11 UTC 2023
Hey Lennart,
Yes, I was referring to man pages I read a few years ago when I used sd_bus_get_timeout() for the first time. And, before posting this mail, I also checked on my current Linux development machine, which has systemd v247. So I was not that far :-) The fixed wording in v250 is correct, understandable and explicit to me. All good now.
Thanks a lot.
Stanislav.
------- Original Message -------
On Monday, January 9th, 2023 at 1:02 PM, Lennart Poettering <lennart at poettering.net> wrote:
> On Mo, 09.01.23 12:53, Lennart Poettering (lennart at poettering.net) wrote:
>
> > https://www.freedesktop.org/software/systemd/man/sd_bus_get_fd.html#Description
> >
> > Note that the returned time-value is absolute, based of
> > CLOCK_MONOTONIC and specified in microseconds. When converting
> > this value in order to pass it as third argument to poll() (which
> > expects relative milliseconds), care should be taken to convert to
> > a relative time and use a division that rounds up to ensure the
> > I/O polling operation doesn't sleep for shorter than necessary,
> > which might result in unintended busy looping (alternatively, use
> > ppoll(2) instead of plain poll(), which understands timeouts with
> > nano-second granularity).
> >
> > That's pretty explicit already, no?
>
>
> This was fixed in 2021 btw, 25060a570c106cf5a14a3268bb0d38d9feb7fdab
> i.e. systemd 250. Upgrade!
>
> > (I mean, you have half a point, the first sentence of the explanation
> > might people think this was a relative timeout, but we all read the
> > full documentation, no, before actually using this API, no? ;-))
> >
> > Anyway, will prep a fix that rewords the first sentence to make this
> > clearer right away.
>
>
> https://github.com/systemd/systemd/pull/25985
>
> Lennart
>
> --
> Lennart Poettering, Berlin
More information about the systemd-devel
mailing list