mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-09-30 13:24:48 +00:00
fcfd4f4ff2
NetworkManager is single-threaded and uses a mainloop. However, sometimes we may need multiple threads. For example, we will need to write sysctl values asynchronously, using the glib thread-pool. For that to work, we also need to switch the network-namespace of the thread-pool thread. We want to use NMPNetns for that. Hence it's better to have NMPNetns thread-safe, instead of coming up with a duplicate implementation. But NMPNetns may want to log, so we also need nm-logging thread-safe. In general, code under "shared/nm-utils" and nm-logging should be usable from multiple threads. It's simpler to make this code thread-safe than re-implementing it. Also, it's a bad limitation to be unable to log from other threads. If there is an error, the best we can often do is to log about it. Make nm-logging thread-safe. Actually, we only need to be able to log from multiple threads. We don't need to setup or configure logging from multiple threads. This restriction allows us to access logging from the main-thread without any thread-synchronization (because all changes in the logging setup are also done from the main-thread). So, while logging from other threads requires a mutex, logging from the main-thread is lock-free. |
||
---|---|---|
.. | ||
c-list | ||
c-rbtree | ||
c-siphash | ||
n-acd | ||
nm-utils | ||
systemd | ||
meson.build | ||
nm-common-macros.h | ||
nm-dbus-compat.h | ||
nm-default.h | ||
nm-dispatcher-api.h | ||
nm-ethtool-utils.c | ||
nm-ethtool-utils.h | ||
nm-meta-setting.c | ||
nm-meta-setting.h | ||
nm-test-libnm-utils.h | ||
nm-test-utils-impl.c | ||
nm-version-macros.h.in |