summaryrefslogtreecommitdiff
path: root/lib/libpthread/thread/thr_private.h
diff options
context:
space:
mode:
authorDaniel Eischen <deischen@FreeBSD.org>2001-11-17 14:28:39 +0000
committerDaniel Eischen <deischen@FreeBSD.org>2001-11-17 14:28:39 +0000
commitccc7b69205d48bc890a1565811ef265a7904977c (patch)
treed9b490926b6ae401659e2052a1b89c5bea09c6d4 /lib/libpthread/thread/thr_private.h
parent608f31f640fa809e3d3f91a58b0bcbe10e125267 (diff)
Notes
Diffstat (limited to 'lib/libpthread/thread/thr_private.h')
-rw-r--r--lib/libpthread/thread/thr_private.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/libpthread/thread/thr_private.h b/lib/libpthread/thread/thr_private.h
index 151fd0379ebd..b60d8b7aed96 100644
--- a/lib/libpthread/thread/thr_private.h
+++ b/lib/libpthread/thread/thr_private.h
@@ -601,6 +601,11 @@ struct pthread_state_data {
/* XXX - What about thread->timeout and/or thread->error? */
};
+struct join_status {
+ struct pthread *thread;
+ int ret;
+ int error;
+};
/*
* Normally thread contexts are stored as jmp_bufs via _setjmp()/_longjmp(),
@@ -757,8 +762,12 @@ struct pthread {
*/
int error;
- /* Pointer to a thread that is waiting to join (NULL if no joiner). */
- struct pthread *joiner;
+ /*
+ * The joiner is the thread that is joining to this thread. The
+ * join status keeps track of a join operation to another thread.
+ */
+ struct pthread *joiner;
+ struct join_status join_status;
/*
* The current thread can belong to only one scheduling queue at