From 24f7b647cd9fc2657964b3de55b0d55a5f493451 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Sun, 4 Aug 2019 15:52:01 -0400 Subject: [PATCH] kernel/user_debugger: Initialize the condition variables. Should (actually) fix #15223 and #15226. After things settle down a bit, I'll refactor our ConditionVariable constructors to detect this at compile time instead of creating obscure KDLs... --- src/system/kernel/debug/user_debugger.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/system/kernel/debug/user_debugger.cpp b/src/system/kernel/debug/user_debugger.cpp index a8ef8ae3b5..e762e36d45 100644 --- a/src/system/kernel/debug/user_debugger.cpp +++ b/src/system/kernel/debug/user_debugger.cpp @@ -792,6 +792,7 @@ thread_hit_debug_event(debug_debugger_message event, const void *message, // TODO: Maybe better use ref-counting and a flag in the breakpoint manager. Team* team = thread_get_current_thread()->team; ConditionVariable debugChangeCondition; + debugChangeCondition.Init(team, "debug change condition"); prepare_debugger_change(team, debugChangeCondition); if (team->debug_info.breakpoint_manager != NULL) { @@ -1561,6 +1562,7 @@ nub_thread_cleanup(Thread *nubThread) nubThread->id, nubThread->team->debug_info.debugger_port)); ConditionVariable debugChangeCondition; + debugChangeCondition.Init(nubThread->team, "debug change condition"); prepare_debugger_change(nubThread->team, debugChangeCondition); team_debug_info teamDebugInfo; @@ -2545,6 +2547,7 @@ install_team_debugger(team_id teamID, port_id debuggerPort, // get the team Team* team; ConditionVariable debugChangeCondition; + debugChangeCondition.Init((void*)teamID, "debug change condition"); error = prepare_debugger_change(teamID, debugChangeCondition, team); if (error != B_OK) return error; @@ -2871,6 +2874,7 @@ _user_remove_team_debugger(team_id teamID) { Team* team; ConditionVariable debugChangeCondition; + debugChangeCondition.Init((void*)teamID, "debug change condition"); status_t error = prepare_debugger_change(teamID, debugChangeCondition, team); if (error != B_OK)