race-free exit-on-idle (redux)

Colin Walters walters at verbum.org
Wed May 13 11:10:25 PDT 2015


Hi,

Regarding: https://bugs.freedesktop.org/show_bug.cgi?id=11454
(But posting here as I spend too much of my life waiting for
 Bugzilla instances - we can summarize there after, link to this thread)

We were talking about having a daemon for rpm-ostree in
https://github.com/projectatomic/rpm-ostree/pull/116

I would like to not have a persistent in memory daemon, for a variety
of reasons.

Now several systemd services do exit-on-idle.  I dug into how that's
supposed to work (mainly via `sd_notify("STOPPING=1")` ), and came up
with this example of a (hopefully) standalone race-free stateful service:

https://github.com/cgwalters/test-exit-on-idle

Now...is this actually race free?  There are a lot of subtleties involved
here, so I'd like to tap the collective brainpower here - was
 sd_notify(STOPPING=1) and the fact that systemd can track process
state and ensure there's only one, synchronized with the bus name
ownership the missing piece on top of the designs in https://bugs.freedesktop.org/show_bug.cgi?id=11454
?






More information about the dbus mailing list