Mark a thread that is suspended while sleeping as interrupted.
This commit is contained in:
parent
1848e3d448
commit
1317e200a8
@ -75,11 +75,13 @@ _pthread_suspend_np(pthread_t thread)
|
|||||||
if ((thread->flags & PTHREAD_FLAGS_IN_WORKQ) != 0)
|
if ((thread->flags & PTHREAD_FLAGS_IN_WORKQ) != 0)
|
||||||
PTHREAD_WORKQ_REMOVE(thread);
|
PTHREAD_WORKQ_REMOVE(thread);
|
||||||
_thread_seterrno(thread,EINTR);
|
_thread_seterrno(thread,EINTR);
|
||||||
|
|
||||||
|
/* FALLTHROUGH */
|
||||||
|
case PS_SLEEP_WAIT:
|
||||||
thread->interrupted = 1;
|
thread->interrupted = 1;
|
||||||
|
|
||||||
/* FALLTHROUGH */
|
/* FALLTHROUGH */
|
||||||
case PS_SIGTHREAD:
|
case PS_SIGTHREAD:
|
||||||
case PS_SLEEP_WAIT:
|
|
||||||
case PS_WAIT_WAIT:
|
case PS_WAIT_WAIT:
|
||||||
case PS_SIGSUSPEND:
|
case PS_SIGSUSPEND:
|
||||||
case PS_SIGWAIT:
|
case PS_SIGWAIT:
|
||||||
|
@ -75,11 +75,13 @@ _pthread_suspend_np(pthread_t thread)
|
|||||||
if ((thread->flags & PTHREAD_FLAGS_IN_WORKQ) != 0)
|
if ((thread->flags & PTHREAD_FLAGS_IN_WORKQ) != 0)
|
||||||
PTHREAD_WORKQ_REMOVE(thread);
|
PTHREAD_WORKQ_REMOVE(thread);
|
||||||
_thread_seterrno(thread,EINTR);
|
_thread_seterrno(thread,EINTR);
|
||||||
|
|
||||||
|
/* FALLTHROUGH */
|
||||||
|
case PS_SLEEP_WAIT:
|
||||||
thread->interrupted = 1;
|
thread->interrupted = 1;
|
||||||
|
|
||||||
/* FALLTHROUGH */
|
/* FALLTHROUGH */
|
||||||
case PS_SIGTHREAD:
|
case PS_SIGTHREAD:
|
||||||
case PS_SLEEP_WAIT:
|
|
||||||
case PS_WAIT_WAIT:
|
case PS_WAIT_WAIT:
|
||||||
case PS_SIGSUSPEND:
|
case PS_SIGSUSPEND:
|
||||||
case PS_SIGWAIT:
|
case PS_SIGWAIT:
|
||||||
|
@ -75,11 +75,13 @@ _pthread_suspend_np(pthread_t thread)
|
|||||||
if ((thread->flags & PTHREAD_FLAGS_IN_WORKQ) != 0)
|
if ((thread->flags & PTHREAD_FLAGS_IN_WORKQ) != 0)
|
||||||
PTHREAD_WORKQ_REMOVE(thread);
|
PTHREAD_WORKQ_REMOVE(thread);
|
||||||
_thread_seterrno(thread,EINTR);
|
_thread_seterrno(thread,EINTR);
|
||||||
|
|
||||||
|
/* FALLTHROUGH */
|
||||||
|
case PS_SLEEP_WAIT:
|
||||||
thread->interrupted = 1;
|
thread->interrupted = 1;
|
||||||
|
|
||||||
/* FALLTHROUGH */
|
/* FALLTHROUGH */
|
||||||
case PS_SIGTHREAD:
|
case PS_SIGTHREAD:
|
||||||
case PS_SLEEP_WAIT:
|
|
||||||
case PS_WAIT_WAIT:
|
case PS_WAIT_WAIT:
|
||||||
case PS_SIGSUSPEND:
|
case PS_SIGSUSPEND:
|
||||||
case PS_SIGWAIT:
|
case PS_SIGWAIT:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user