diff --git a/src/apps/debugger/TeamDebugger.cpp b/src/apps/debugger/TeamDebugger.cpp index dc6b7e09f0..c51edce97f 100644 --- a/src/apps/debugger/TeamDebugger.cpp +++ b/src/apps/debugger/TeamDebugger.cpp @@ -36,7 +36,8 @@ TeamDebugger::TeamDebugger() fWorker(NULL), fDebugEventListener(-1), fTeamWindow(NULL), - fTerminating(false) + fTerminating(false), + fKillTeamOnQuit(false) { } @@ -55,6 +56,9 @@ TeamDebugger::~TeamDebugger() if (fDebugEventListener >= 0) wait_for_thread(fDebugEventListener, NULL); + if (fKillTeamOnQuit && fTeam != NULL) + kill_team(fTeam->ID()); + delete fDebuggerInterface; delete fWorker; delete fDebugModel; @@ -345,11 +349,7 @@ TeamDebugger::TeamWindowQuitRequested(TeamWindow* window) switch (alert->Go()) { case 0: - // TODO: Implement killing the team. - alert = new BAlert("TODO", "That is not nice and I won't do it " - "either! Test failed. Nice to know how you think about these " - "matters.", "Ugh!"); - alert->Go(); + fKillTeamOnQuit = true; break; case 1: return false; diff --git a/src/apps/debugger/TeamDebugger.h b/src/apps/debugger/TeamDebugger.h index c85d9b4e99..3492ac3459 100644 --- a/src/apps/debugger/TeamDebugger.h +++ b/src/apps/debugger/TeamDebugger.h @@ -124,6 +124,7 @@ private: thread_id fDebugEventListener; TeamWindow* fTeamWindow; volatile bool fTerminating; + bool fKillTeamOnQuit; }; #endif // TEAM_DEBUGGER_H