* Compute the summed up wait counts and times for WaitObjectGroups.

* Delete the wait object array in the WaitObjectGroup destructor. It was leaked
  before.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30449 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold 2009-04-26 22:38:54 +00:00
parent e9b47e4853
commit 4ab2927d42
2 changed files with 27 additions and 1 deletions

View File

@ -15,13 +15,20 @@ ThreadModel::WaitObjectGroup::WaitObjectGroup(
Model::ThreadWaitObject** waitObjects, int32 count)
:
fWaitObjects(waitObjects),
fCount(count)
fCount(count),
fWaits(0),
fTotalWaitTime(0)
{
for (int32 i = 0; i < fCount; i++) {
fWaits += fWaitObjects[i]->Waits();
fTotalWaitTime += fWaitObjects[i]->TotalWaitTime();
}
}
ThreadModel::WaitObjectGroup::~WaitObjectGroup()
{
delete[] fWaitObjects;
}

View File

@ -56,6 +56,9 @@ public:
inline uint32 Type() const;
inline const char* Name() const;
inline int64 Waits() const;
inline bigtime_t TotalWaitTime() const;
inline int32 CountWaitObjects() const;
inline Model::ThreadWaitObject* WaitObjectAt(int32 index) const;
@ -68,6 +71,8 @@ public:
private:
Model::ThreadWaitObject** fWaitObjects;
int32 fCount;
int64 fWaits;
bigtime_t fTotalWaitTime;
};
@ -105,6 +110,20 @@ ThreadModel::WaitObjectGroup::Name() const
}
int64
ThreadModel::WaitObjectGroup::Waits() const
{
return fWaits;
}
bigtime_t
ThreadModel::WaitObjectGroup::TotalWaitTime() const
{
return fTotalWaitTime;
}
int32
ThreadModel::WaitObjectGroup::CountWaitObjects() const
{