summary refs log tree commit diff
path: root/shared/nm-platform
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2021-08-16 09:51:46 +0200
committerMichael Biebl <biebl@debian.org>2021-08-16 09:51:46 +0200
commitbfe522304da217296e2a61040f58e35ec5d6f3f2 (patch)
tree6c4296644fa59cbfe51d9e8aafebddace5ac6b6f /shared/nm-platform
parent3a56bce6c0ea7ba0fe269520547740783b342e0d (diff)
New upstream version 1.30.6 upstream/1.30.6
Diffstat (limited to 'shared/nm-platform')
-rw-r--r--shared/nm-platform/nmp-netns.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/shared/nm-platform/nmp-netns.c b/shared/nm-platform/nmp-netns.c
index f97339a7..4dd9e848 100644
--- a/shared/nm-platform/nmp-netns.c
+++ b/shared/nm-platform/nmp-netns.c
@@ -11,7 +11,6 @@
 #include <sys/mount.h>
 #include <sys/stat.h>
 #include <sys/types.h>
-#include <pthread.h>
 
 #include "nm-log-core/nm-logging.h"
 
@@ -151,20 +150,13 @@ _netns_stack_get_impl(void)
 {
     gs_unref_object NMPNetns *netns = NULL;
     gs_free_error GError *error     = NULL;
-    pthread_key_t         key;
     GArray *              s;
 
     s = g_array_new(FALSE, FALSE, sizeof(NetnsInfo));
     g_array_set_clear_func(s, _netns_stack_clear_cb);
     _netns_stack = s;
 
-    /* register a destructor function to cleanup the array. If we fail
-     * to do so, we will leak NMPNetns instances (and their file descriptor) when the
-     * thread exits. */
-    if (pthread_key_create(&key, (void (*)(void *)) g_array_unref) != 0)
-        _LOGE(NULL, "failure to initialize thread-local storage");
-    else if (pthread_setspecific(key, s) != 0)
-        _LOGE(NULL, "failure to set thread-local storage");
+    nm_utils_thread_local_register_destroy(s, (GDestroyNotify) g_array_unref);
 
     /* at the bottom of the stack we must try to create a netns instance
      * that we never pop. It's the base to which we need to return. */