summaryrefslogtreecommitdiffstats
path: root/lib/libpthread
diff options
context:
space:
mode:
authordavidxu <davidxu@FreeBSD.org>2003-05-30 14:50:16 +0000
committerdavidxu <davidxu@FreeBSD.org>2003-05-30 14:50:16 +0000
commit7ab0ceb36107f1b2314bd7598ab317eaf28330a8 (patch)
tree5d159576b4bcbf3042b5c2845f01a8184c6f6330 /lib/libpthread
parentb2c27551169801c043887fd97d6947c44eace26c (diff)
downloadFreeBSD-src-7ab0ceb36107f1b2314bd7598ab317eaf28330a8.zip
FreeBSD-src-7ab0ceb36107f1b2314bd7598ab317eaf28330a8.tar.gz
Save THR_FLAGS_IN_TDLIST in signal frame, otherwise if a thread received
a signal will can not be removed from thread list after it exited. Reviewed by: deischen Approved by: re (jhb)
Diffstat (limited to 'lib/libpthread')
-rw-r--r--lib/libpthread/thread/thr_sig.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/libpthread/thread/thr_sig.c b/lib/libpthread/thread/thr_sig.c
index 49a1c39..1250a95 100644
--- a/lib/libpthread/thread/thr_sig.c
+++ b/lib/libpthread/thread/thr_sig.c
@@ -893,7 +893,8 @@ static void
thr_sigframe_save(struct pthread *thread, struct pthread_sigframe *psf)
{
/* This has to initialize all members of the sigframe. */
- psf->psf_flags = thread->flags & THR_FLAGS_PRIVATE;
+ psf->psf_flags =
+ thread->flags & (THR_FLAGS_PRIVATE|THR_FLAGS_IN_TDLIST);
psf->psf_interrupted = thread->interrupted;
psf->psf_signo = thread->signo;
psf->psf_state = thread->state;
OpenPOWER on IntegriCloud