summaryrefslogtreecommitdiffstats
path: root/src/libnetdata/threads
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-26 08:15:20 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-26 08:15:20 +0000
commit87d772a7d708fec12f48cd8adc0dedff6e1025da (patch)
tree1fee344c64cc3f43074a01981e21126c8482a522 /src/libnetdata/threads
parentAdding upstream version 1.46.3. (diff)
downloadnetdata-87d772a7d708fec12f48cd8adc0dedff6e1025da.tar.xz
netdata-87d772a7d708fec12f48cd8adc0dedff6e1025da.zip
Adding upstream version 1.47.0.upstream/1.47.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/libnetdata/threads')
-rw-r--r--src/libnetdata/threads/threads.c12
-rw-r--r--src/libnetdata/threads/threads.h2
2 files changed, 9 insertions, 5 deletions
diff --git a/src/libnetdata/threads/threads.c b/src/libnetdata/threads/threads.c
index 0e12d173e..36c63f4e0 100644
--- a/src/libnetdata/threads/threads.c
+++ b/src/libnetdata/threads/threads.c
@@ -418,12 +418,14 @@ bool nd_thread_signaled_to_cancel(void) {
// ----------------------------------------------------------------------------
// nd_thread_join
-void nd_thread_join(ND_THREAD *nti) {
- if(!nti) return;
+int nd_thread_join(ND_THREAD *nti) {
+ if(!nti)
+ return ESRCH;
int ret = pthread_join(nti->thread, NULL);
- if(ret != 0)
- nd_log(NDLS_DAEMON, NDLP_WARNING, "cannot join thread. pthread_join() failed with code %d.", ret);
+ if(ret != 0) {
+ nd_log(NDLS_DAEMON, NDLP_WARNING, "cannot join thread. pthread_join() failed with code %d. (tag=%s)", ret, nti->tag);
+ }
else {
nd_thread_status_set(nti, NETDATA_THREAD_STATUS_JOINED);
@@ -434,4 +436,6 @@ void nd_thread_join(ND_THREAD *nti) {
freez(nti);
}
+
+ return ret;
}
diff --git a/src/libnetdata/threads/threads.h b/src/libnetdata/threads/threads.h
index a7204e2a2..0b54a5fc0 100644
--- a/src/libnetdata/threads/threads.h
+++ b/src/libnetdata/threads/threads.h
@@ -70,7 +70,7 @@ void netdata_threads_init_after_fork(size_t stacksize);
void netdata_threads_init_for_external_plugins(size_t stacksize);
ND_THREAD *nd_thread_create(const char *tag, NETDATA_THREAD_OPTIONS options, void *(*start_routine) (void *), void *arg);
-void nd_thread_join(ND_THREAD * nti);
+int nd_thread_join(ND_THREAD * nti);
ND_THREAD *nd_thread_self(void);
bool nd_thread_is_me(ND_THREAD *nti);