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)
This commit is contained in:
parent
b2c2755116
commit
7ab0ceb361
@ -893,7 +893,8 @@ static void
|
|||||||
thr_sigframe_save(struct pthread *thread, struct pthread_sigframe *psf)
|
thr_sigframe_save(struct pthread *thread, struct pthread_sigframe *psf)
|
||||||
{
|
{
|
||||||
/* This has to initialize all members of the sigframe. */
|
/* 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_interrupted = thread->interrupted;
|
||||||
psf->psf_signo = thread->signo;
|
psf->psf_signo = thread->signo;
|
||||||
psf->psf_state = thread->state;
|
psf->psf_state = thread->state;
|
||||||
|
@ -893,7 +893,8 @@ static void
|
|||||||
thr_sigframe_save(struct pthread *thread, struct pthread_sigframe *psf)
|
thr_sigframe_save(struct pthread *thread, struct pthread_sigframe *psf)
|
||||||
{
|
{
|
||||||
/* This has to initialize all members of the sigframe. */
|
/* 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_interrupted = thread->interrupted;
|
||||||
psf->psf_signo = thread->signo;
|
psf->psf_signo = thread->signo;
|
||||||
psf->psf_state = thread->state;
|
psf->psf_state = thread->state;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user