diff options
author | davidxu <davidxu@FreeBSD.org> | 2003-05-30 14:50:16 +0000 |
---|---|---|
committer | davidxu <davidxu@FreeBSD.org> | 2003-05-30 14:50:16 +0000 |
commit | 7ab0ceb36107f1b2314bd7598ab317eaf28330a8 (patch) | |
tree | 5d159576b4bcbf3042b5c2845f01a8184c6f6330 /lib/libpthread/thread/thr_sig.c | |
parent | b2c27551169801c043887fd97d6947c44eace26c (diff) | |
download | FreeBSD-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/thread/thr_sig.c')
-rw-r--r-- | lib/libpthread/thread/thr_sig.c | 3 |
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; |