-
cgmanager: avoid stray dbus connections · 1e609623Serge Hallyn authored
There are two parts to this fix. First, create a private DBusConnection manually, instead of using nih_dbus_connect. The latter always creates a shared connection, which cannot be closed. Note: creating an actual shared connection, mutexing it among all threads, and creating per-thread proxies would be an alternative - however we don't want long-lived connections as they tend not to be reliable (especially if cgmanager restarts). Second, use pthread_setspecific to create per-thread keys which can be associated with destructors. Specify a destructor which closes the dbus connection. If a thread dies while holding cgmanager, the connection will be closed. Otherwise, we close the connection and unset the key. Signed-off-by:
Serge Hallyn <serge.hallyn@ubuntu.com> Acked-by:
Stéphane Graber <stgraber@ubuntu.com>
1e609623
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| include | Loading commit data... | |
| lua-lxc | Loading commit data... | |
| lxc | Loading commit data... | |
| python-lxc | Loading commit data... | |
| tests | Loading commit data... | |
| Makefile.am | Loading commit data... |