* Moved killing/resuming the team to DebuggerInterface::Close().
* Made the TeamDebugger safer for the case that the initialization failed early. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31218 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
e951f678c2
commit
fef6a27d78
@ -48,7 +48,10 @@ TeamDebugger::~TeamDebugger()
|
|||||||
|
|
||||||
fTerminating = true;
|
fTerminating = true;
|
||||||
|
|
||||||
fDebuggerInterface->Close();
|
if (fDebuggerInterface != NULL)
|
||||||
|
fDebuggerInterface->Close(fKillTeamOnQuit);
|
||||||
|
|
||||||
|
if (fWorker != NULL)
|
||||||
fWorker->ShutDown();
|
fWorker->ShutDown();
|
||||||
|
|
||||||
locker.Unlock();
|
locker.Unlock();
|
||||||
@ -56,9 +59,6 @@ TeamDebugger::~TeamDebugger()
|
|||||||
if (fDebugEventListener >= 0)
|
if (fDebugEventListener >= 0)
|
||||||
wait_for_thread(fDebugEventListener, NULL);
|
wait_for_thread(fDebugEventListener, NULL);
|
||||||
|
|
||||||
if (fKillTeamOnQuit && fTeam != NULL)
|
|
||||||
kill_team(fTeam->ID());
|
|
||||||
|
|
||||||
delete fDebuggerInterface;
|
delete fDebuggerInterface;
|
||||||
delete fWorker;
|
delete fWorker;
|
||||||
delete fDebugModel;
|
delete fDebugModel;
|
||||||
|
@ -237,7 +237,7 @@ DebuggerInterface::~DebuggerInterface()
|
|||||||
{
|
{
|
||||||
fArchitecture->RemoveReference();
|
fArchitecture->RemoveReference();
|
||||||
|
|
||||||
Close();
|
Close(false);
|
||||||
|
|
||||||
delete fDebugContextPool;
|
delete fDebugContextPool;
|
||||||
}
|
}
|
||||||
@ -286,8 +286,13 @@ DebuggerInterface::Init()
|
|||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
DebuggerInterface::Close()
|
DebuggerInterface::Close(bool killTeam)
|
||||||
{
|
{
|
||||||
|
if (killTeam)
|
||||||
|
kill_team(fTeamID);
|
||||||
|
else if (fNubPort >= 0)
|
||||||
|
remove_team_debugger(fTeamID);
|
||||||
|
|
||||||
if (fDebuggerPort >= 0)
|
if (fDebuggerPort >= 0)
|
||||||
delete_port(fDebuggerPort);
|
delete_port(fDebuggerPort);
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ public:
|
|||||||
virtual ~DebuggerInterface();
|
virtual ~DebuggerInterface();
|
||||||
|
|
||||||
status_t Init();
|
status_t Init();
|
||||||
void Close();
|
void Close(bool killTeam);
|
||||||
|
|
||||||
Architecture* GetArchitecture() const
|
Architecture* GetArchitecture() const
|
||||||
{ return fArchitecture; }
|
{ return fArchitecture; }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user