summaryrefslogtreecommitdiffstats
path: root/lib/libkse
diff options
context:
space:
mode:
authordavidxu <davidxu@FreeBSD.org>2004-08-08 22:42:11 +0000
committerdavidxu <davidxu@FreeBSD.org>2004-08-08 22:42:11 +0000
commitbe9db1f7cb124c010333e8999a1e34d600b39974 (patch)
tree31aebd99a2651a61a9636299dd7b4c28d721dd85 /lib/libkse
parent380ac81517b0d00d46818627bf188eafc46044ef (diff)
downloadFreeBSD-src-be9db1f7cb124c010333e8999a1e34d600b39974.zip
FreeBSD-src-be9db1f7cb124c010333e8999a1e34d600b39974.tar.gz
Check debugger suspending flag for system scope thread.
Reviewed by: deischen
Diffstat (limited to 'lib/libkse')
-rw-r--r--lib/libkse/thread/thr_kern.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/libkse/thread/thr_kern.c b/lib/libkse/thread/thr_kern.c
index ddcae89..e29f985 100644
--- a/lib/libkse/thread/thr_kern.c
+++ b/lib/libkse/thread/thr_kern.c
@@ -2539,7 +2539,11 @@ _thr_debug_check_yield(struct pthread *curthread)
* is cleared by debugger, the flag will be cleared in next
* suspension event.
*/
- if ((curthread->attr.flags & PTHREAD_SCOPE_SYSTEM) == 0 &&
- !DBG_CAN_RUN(curthread))
- _thr_sched_switch(curthread);
+ if (!DBG_CAN_RUN(curthread)) {
+ if ((curthread->attr.flags & PTHREAD_SCOPE_SYSTEM) == 0)
+ _thr_sched_switch(curthread);
+ else
+ kse_thr_interrupt(&curthread->tcb->tcb_tmbx,
+ KSE_INTR_DBSUSPEND, 0);
+ }
}
OpenPOWER on IntegriCloud