Also interrupt condition variables in _user_debug_thread().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22120 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -2194,6 +2194,8 @@ _user_remove_team_debugger(team_id teamID)
|
|||||||
status_t
|
status_t
|
||||||
_user_debug_thread(thread_id threadID)
|
_user_debug_thread(thread_id threadID)
|
||||||
{
|
{
|
||||||
|
TRACE(("[%ld] _user_debug_thread(%ld)\n", find_thread(NULL), threadID));
|
||||||
|
|
||||||
// tell the thread to stop as soon as possible
|
// tell the thread to stop as soon as possible
|
||||||
status_t error = B_OK;
|
status_t error = B_OK;
|
||||||
cpu_status state = disable_interrupts();
|
cpu_status state = disable_interrupts();
|
||||||
@@ -2225,7 +2227,10 @@ _user_debug_thread(thread_id threadID)
|
|||||||
|
|
||||||
case B_THREAD_WAITING:
|
case B_THREAD_WAITING:
|
||||||
// thread waiting: interrupt it
|
// thread waiting: interrupt it
|
||||||
sem_interrupt_thread(thread);
|
if (thread->sem.blocking >= 0)
|
||||||
|
sem_interrupt_thread(thread);
|
||||||
|
else if (thread->condition_variable_entry)
|
||||||
|
condition_variable_interrupt_thread(thread);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user