1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-07 01:27:11 +03:00
The systemd System and Service Manager
Go to file
Vito Caputo 45ea84d8ed basic: implement the IteratedCache
Adds the basics of the IteratedCache and constructor support for the
Hashmap and OrderedHashmap types.

iterated_cache_get() is responsible for synchronizing the cache with
the associated Hashmap and making it available to the caller at the
supplied result pointers.  Since iterated_cache_get() may need to
allocate memory, it may fail, so callers must check the return value.

On success, pointer arrays containing pointers to the associated
Hashmap's keys and values, in as-iterated order, are returned in
res_keys and res_values, respectively.  Either may be supplied as NULL
to inhibit caching of the keys or values, respectively.

Note that if the cached Hashmap hasn't changed since the previous call
to iterated_cache_get(), and it's not a call activating caching of the
values or keys, the cost is effectively zero as the resulting pointers
will simply refer to the previously returned arrays as-is.

A cleanup function has also been added, iterated_cache_free().

This only frees the IteratedCache container and related arrays.  The
associated Hashmap, its keys, and values are not affected.  Also note
that the associated Hashmap does not automatically free its associated
IteratedCache when freed.

One could, in theory, safely access the arrays returned by a
successful iterated_cache_get() call after its associated Hashmap has
been freed, including the referenced values and keys.  Provided the
iterated_cache_get() was performed prior to the hashmap free, and that
the type of hashmap free performed didn't free keys and/or values as
well.
2018-01-27 13:11:50 -08:00
.github Docs: Fix spelling and capitalization (#7408) 2017-11-21 14:37:16 +01:00
.mkosi Add SPDX license headers to various assorted files 2017-11-19 19:08:15 +01:00
catalog Add license headers and SPDX identifiers to meson.build files 2017-11-19 19:08:15 +01:00
coccinelle coccinelle: add a run-coccinelle.sh script that runs all scripts 2017-11-29 20:12:26 +01:00
docs Add license headers and SPDX identifiers to meson.build files 2017-11-19 19:08:15 +01:00
factory/etc factory: remove broken pam_limits 2014-07-30 15:21:54 +02:00
hwdb Added Logitech MX Master 2s (#7487) 2017-11-28 12:30:31 +10:00
man man: fix typo (#7511) 2017-11-30 12:02:20 +01:00
modprobe.d Add SPDX license headers to various assorted files 2017-11-19 19:08:15 +01:00
network Add license headers and SPDX identifiers to meson.build files 2017-11-19 19:08:15 +01:00
po Add license headers and SPDX identifiers to meson.build files 2017-11-19 19:08:15 +01:00
rules meson: re-attach rule-syntax-check.py test 2017-11-22 12:46:08 +01:00
shell-completion Add license headers and SPDX identifiers to meson.build files 2017-11-19 19:08:15 +01:00
src basic: implement the IteratedCache 2018-01-27 13:11:50 -08:00
sysctl.d Add license headers and SPDX identifiers to meson.build files 2017-11-19 19:08:15 +01:00
system-preset Add SPDX license headers to various assorted files 2017-11-19 19:08:15 +01:00
sysusers.d README,sysusers: complete and order list of default udev groups we need 2017-11-20 12:34:28 +01:00
test tests: fix description of TEST-14-MACHINE-ID 2017-11-29 12:34:12 +01:00
tmpfiles.d Add license headers and SPDX identifiers to meson.build files 2017-11-19 19:08:15 +01:00
tools test: set log_level to info in test-hwdb and check-help-* 2017-11-26 00:01:55 +09:00
units Add license headers and SPDX identifiers to meson.build files 2017-11-19 19:08:15 +01:00
xorg login: support user-bus on dbus1 2015-08-31 18:12:37 +02:00
.dir-locals.el meson: also indent scripts with 8 spaces 2017-04-25 08:49:16 -04:00
.editorconfig editorconfig: add rule for meson.build files (#6671) 2017-08-28 16:37:23 +02:00
.gitattributes
.gitignore Add mkosi.output/ to .gitignore 2017-11-29 14:33:56 +01:00
.mailmap update .mailmap a bit more 2017-10-05 17:39:50 +02:00
.travis.yml remove gudev and gtk-doc 2015-06-03 00:22:53 +02:00
.vimrc vimrc: fix indentation logic for our docbook xml files 2016-04-29 12:23:34 +02:00
.ycm_extra_conf.py
CODING_STYLE CODING_STYLE: document the order in which unescaping + specifier expansion should be done 2017-11-29 12:32:56 +01:00
configure build-sys: add basic support for ./configure && make && make install 2017-07-18 10:05:06 -04:00
DISTRO_PORTING DISTRO_PORTING: document that distros may/should change fallback DNS as well as fallback NTP if they wish 2017-07-24 11:49:16 +02:00
ENVIRONMENT.md documentation: document nss-systemd's internal environment variables in ENVIRONMENT.md 2017-09-22 15:24:55 +02:00
HACKING HACKING: add a short description of new unit tests 2017-11-04 21:15:57 +01:00
LICENSE.GPL2
LICENSE.LGPL2.1
Makefile build-sys: Fix Makefile wrapper for install target (#6548) 2017-08-07 11:29:20 +02:00
meson_options.txt Revert "meson: drop rootprefix option" 2017-11-28 20:02:53 +01:00
meson.build meson: emit a warning if rootprefix is set 2017-11-29 13:29:59 +01:00
mkosi.build mkosi: do not build man pages 2017-11-29 14:33:55 +01:00
mkosi.default mkosi: create .mkosi directory 2016-10-06 11:53:58 -04:00
NEWS NEWS: fix minor error (#7399) 2017-11-21 11:05:57 +09:00
README README: add requirements for IPAddress{Allow,Deny} (#7414) 2017-11-21 23:54:20 +01:00
README.md README.md: add CII Best Practices badge 2017-11-04 21:15:57 +01:00
TODO update TODO 2017-11-29 20:12:26 +01:00
TRANSIENT-SETTINGS.md documentation: add document listing all unit file settings also supported for transient units 2017-11-29 12:34:12 +01:00

systemd - System and Service Manager

Count of open issues over time Count of open pull requests over time Build Status
Coverity Scan Status
CII Best Practices

Details

General information about systemd can be found in the systemd Wiki.

Information about build requirements are provided in the README file.

Consult our NEWS file for information about what's new in the most recent systemd versions.

Please see the HACKING file for information how to hack on systemd and test your modifications.

Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.

When preparing patches for systemd, please follow our Coding Style Guidelines.

If you are looking for support, please contact our mailing list or join our IRC channel.