s/TMDF_DONOTRUNUSER/TMDF_SUSPEND/g
Dicussed with: deischen
This commit is contained in:
parent
2ff39e1543
commit
4513fb36aa
@ -2525,12 +2525,12 @@ void
|
||||
_thr_debug_check_yield(struct pthread *curthread)
|
||||
{
|
||||
/*
|
||||
* Note that TMDF_DONOTRUNUSER is set after process is suspended.
|
||||
* Note that TMDF_SUSPEND is set after process is suspended.
|
||||
* When we are being debugged, every suspension in process
|
||||
* will cause all KSEs to schedule an upcall in kernel, unless the
|
||||
* KSE is in critical region.
|
||||
* If the function is being called, it means the KSE is no longer
|
||||
* in critical region, if the TMDF_DONOTRUNUSER is set by debugger
|
||||
* in critical region, if the TMDF_SUSPEND is set by debugger
|
||||
* before KSE leaves critical region, we will catch it here, else
|
||||
* if the flag is changed during testing, it also not a problem,
|
||||
* because the change only occurs after a process suspension event
|
||||
|
@ -274,7 +274,7 @@ _pq_first_debug(pq_queue_t *pq)
|
||||
} else {
|
||||
/*
|
||||
* note there may be a suspension event during this
|
||||
* test, If TMDF_DONOTRUNUSER is set after we tested it,
|
||||
* test, If TMDF_SUSPEND is set after we tested it,
|
||||
* we will run the thread, this seems be a problem,
|
||||
* fortunatly, when we are being debugged, all context
|
||||
* switch will be done by kse_switchin, that is a
|
||||
|
@ -972,7 +972,7 @@ do { \
|
||||
(((thrd)->flags & THR_FLAGS_SUSPENDED) != 0))
|
||||
#define THR_IS_EXITING(thrd) (((thrd)->flags & THR_FLAGS_EXITING) != 0)
|
||||
#define DBG_CAN_RUN(thrd) (((thrd)->tcb->tcb_tmbx.tm_dflags & \
|
||||
TMDF_DONOTRUNUSER) == 0)
|
||||
TMDF_SUSPEND) == 0)
|
||||
|
||||
extern int __isthreaded;
|
||||
|
||||
|
@ -2525,12 +2525,12 @@ void
|
||||
_thr_debug_check_yield(struct pthread *curthread)
|
||||
{
|
||||
/*
|
||||
* Note that TMDF_DONOTRUNUSER is set after process is suspended.
|
||||
* Note that TMDF_SUSPEND is set after process is suspended.
|
||||
* When we are being debugged, every suspension in process
|
||||
* will cause all KSEs to schedule an upcall in kernel, unless the
|
||||
* KSE is in critical region.
|
||||
* If the function is being called, it means the KSE is no longer
|
||||
* in critical region, if the TMDF_DONOTRUNUSER is set by debugger
|
||||
* in critical region, if the TMDF_SUSPEND is set by debugger
|
||||
* before KSE leaves critical region, we will catch it here, else
|
||||
* if the flag is changed during testing, it also not a problem,
|
||||
* because the change only occurs after a process suspension event
|
||||
|
@ -274,7 +274,7 @@ _pq_first_debug(pq_queue_t *pq)
|
||||
} else {
|
||||
/*
|
||||
* note there may be a suspension event during this
|
||||
* test, If TMDF_DONOTRUNUSER is set after we tested it,
|
||||
* test, If TMDF_SUSPEND is set after we tested it,
|
||||
* we will run the thread, this seems be a problem,
|
||||
* fortunatly, when we are being debugged, all context
|
||||
* switch will be done by kse_switchin, that is a
|
||||
|
@ -972,7 +972,7 @@ do { \
|
||||
(((thrd)->flags & THR_FLAGS_SUSPENDED) != 0))
|
||||
#define THR_IS_EXITING(thrd) (((thrd)->flags & THR_FLAGS_EXITING) != 0)
|
||||
#define DBG_CAN_RUN(thrd) (((thrd)->tcb->tcb_tmbx.tm_dflags & \
|
||||
TMDF_DONOTRUNUSER) == 0)
|
||||
TMDF_SUSPEND) == 0)
|
||||
|
||||
extern int __isthreaded;
|
||||
|
||||
|
@ -487,9 +487,9 @@ pt_dbsuspend(const td_thrhandle_t *th, int suspend)
|
||||
if (ret != 0)
|
||||
return (P2T(ret));
|
||||
if (suspend)
|
||||
dflags |= TMDF_DONOTRUNUSER;
|
||||
dflags |= TMDF_SUSPEND;
|
||||
else
|
||||
dflags &= ~TMDF_DONOTRUNUSER;
|
||||
dflags &= ~TMDF_SUSPEND;
|
||||
ret = ps_pwrite(ta->ph,
|
||||
tmbx_addr + offsetof(struct kse_thr_mailbox, tm_dflags),
|
||||
&dflags, sizeof(dflags));
|
||||
@ -594,7 +594,7 @@ pt_thr_get_info(const td_thrhandle_t *th, td_thrinfo_t *info)
|
||||
break;
|
||||
}
|
||||
|
||||
info->ti_db_suspended = ((dflags & TMDF_DONOTRUNUSER) != 0);
|
||||
info->ti_db_suspended = ((dflags & TMDF_SUSPEND) != 0);
|
||||
info->ti_type = TD_THR_USER;
|
||||
info->ti_pri = pt.active_priority;
|
||||
info->ti_sigmask = pt.sigmask;
|
||||
|
@ -161,7 +161,7 @@ kse_switchin(struct thread *td, struct kse_switchin_args *uap)
|
||||
ptrace_single_step(td);
|
||||
else
|
||||
ptrace_clear_single_step(td);
|
||||
if (tmbx.tm_dflags & TMDF_DONOTRUNUSER) {
|
||||
if (tmbx.tm_dflags & TMDF_SUSPEND) {
|
||||
mtx_lock_spin(&sched_lock);
|
||||
/* fuword can block, check again */
|
||||
if (td->td_upcall)
|
||||
@ -1159,7 +1159,7 @@ thread_user_enter(struct proc *p, struct thread *td)
|
||||
mtx_unlock_spin(&sched_lock);
|
||||
if (__predict_false(p->p_flag & P_TRACED)) {
|
||||
flags = fuword32(&tmbx->tm_dflags);
|
||||
if (flags & TMDF_DONOTRUNUSER) {
|
||||
if (flags & TMDF_SUSPEND) {
|
||||
mtx_lock_spin(&sched_lock);
|
||||
/* fuword can block, check again */
|
||||
if (td->td_upcall)
|
||||
|
@ -101,7 +101,7 @@ struct kse_mailbox {
|
||||
|
||||
/* These flags are kept in tm_dlfags */
|
||||
#define TMDF_SSTEP 0x01
|
||||
#define TMDF_DONOTRUNUSER 0x02
|
||||
#define TMDF_SUSPEND 0x02
|
||||
|
||||
/* Flags for kse_switchin */
|
||||
#define KSE_SWITCHIN_SETTMBX 0x01
|
||||
|
Loading…
Reference in New Issue
Block a user