]> git.ipfire.org Git - thirdparty/systemd.git/commit - man/systemctl.xml
core: add Ref()/Unref() bus calls for units
authorLennart Poettering <lennart@poettering.net>
Mon, 15 Aug 2016 16:12:01 +0000 (18:12 +0200)
committerLennart Poettering <lennart@poettering.net>
Mon, 22 Aug 2016 14:14:21 +0000 (16:14 +0200)
commit05a98afd3e0513de50c5949b7fa50ff0989d68bc
tree74ef3320a2f75dac4285843098b2b33e5e0c817c
parentecddb2b586d1b69e5538fb85262d2b9e6d253ac0
core: add Ref()/Unref() bus calls for units

This adds two (privileged) bus calls Ref() and Unref() to the Unit interface.
The two calls may be used by clients to pin a unit into memory, so that various
runtime properties aren't flushed out by the automatic GC. This is necessary
to permit clients to race-freely acquire runtime results (such as process exit
status/code or accumulated CPU time) on successful service termination.

Ref() and Unref() are fully recursive, hence act like the usual reference
counting concept in C. Taking a reference is a privileged operation, as this
allows pinning units into memory which consumes resources.

Transient units may also gain a reference at the time of creation, via the new
AddRef property (that is only defined for transient units at the time of
creation).
14 files changed:
man/systemctl.xml
src/core/dbus-manager.c
src/core/dbus-unit.c
src/core/dbus-unit.h
src/core/dbus.c
src/core/dbus.h
src/core/job.c
src/core/job.h
src/core/manager.c
src/core/org.freedesktop.systemd1.conf
src/core/unit.c
src/core/unit.h
src/libsystemd/sd-bus/bus-common-errors.c
src/libsystemd/sd-bus/bus-common-errors.h