telemetry: detach pthreads
Checks
Commit Message
There are a number telemetry threads which are created and
there is nothing that does pthread_join() to wait for them.
Mark these threads as detached, so that the pthread library
can cleanup state when the thread exits.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
lib/telemetry/telemetry.c | 2 ++
lib/telemetry/telemetry_legacy.c | 1 +
2 files changed, 3 insertions(+)
Comments
Hi Stephen,
>-----Original Message-----
>From: Stephen Hemminger <stephen@networkplumber.org>
>Sent: Thursday 19 August 2021 03:38
>To: Power, Ciara <ciara.power@intel.com>
>Cc: dev@dpdk.org; Stephen Hemminger <stephen@networkplumber.org>
>Subject: [PATCH] telemetry: detach pthreads
>
>There are a number telemetry threads which are created and there is nothing
>that does pthread_join() to wait for them.
>Mark these threads as detached, so that the pthread library can cleanup state
>when the thread exits.
>
>Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
>---
> lib/telemetry/telemetry.c | 2 ++
> lib/telemetry/telemetry_legacy.c | 1 +
> 2 files changed, 3 insertions(+)
>
<snip>
Thanks for catching this,
Acked-by: Ciara Power <ciara.power@intel.com>
> >There are a number telemetry threads which are created and there is nothing
> >that does pthread_join() to wait for them.
> >Mark these threads as detached, so that the pthread library can cleanup state
> >when the thread exits.
> >
> >Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> >---
> > lib/telemetry/telemetry.c | 2 ++
> > lib/telemetry/telemetry_legacy.c | 1 +
> > 2 files changed, 3 insertions(+)
> >
> <snip>
>
> Thanks for catching this,
>
> Acked-by: Ciara Power <ciara.power@intel.com>
Applied, thanks.
@@ -490,6 +490,7 @@ telemetry_legacy_init(void)
pthread_setaffinity_np(t_old, sizeof(*thread_cpuset), thread_cpuset);
set_thread_name(t_old, "telemetry-v1");
TMTY_LOG(DEBUG, "Legacy telemetry socket initialized ok\n");
+ pthread_detach(t_old);
return 0;
}
@@ -528,6 +529,7 @@ telemetry_v2_init(void)
}
pthread_setaffinity_np(t_new, sizeof(*thread_cpuset), thread_cpuset);
set_thread_name(t_new, "telemetry-v2");
+ pthread_detach(t_new);
atexit(unlink_sockets);
return 0;
@@ -121,6 +121,7 @@ register_client(const char *cmd __rte_unused, const char *params,
close(fd);
return -1;
}
+ pthread_detach(th);
#endif /* !RTE_EXEC_ENV_WINDOWS */
return 0;
}