* 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) Model::ThreadWaitObject** waitObjects, int32 count)
: :
fWaitObjects(waitObjects), 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() ThreadModel::WaitObjectGroup::~WaitObjectGroup()
{ {
delete[] fWaitObjects;
} }

View File

@ -56,6 +56,9 @@ public:
inline uint32 Type() const; inline uint32 Type() const;
inline const char* Name() const; inline const char* Name() const;
inline int64 Waits() const;
inline bigtime_t TotalWaitTime() const;
inline int32 CountWaitObjects() const; inline int32 CountWaitObjects() const;
inline Model::ThreadWaitObject* WaitObjectAt(int32 index) const; inline Model::ThreadWaitObject* WaitObjectAt(int32 index) const;
@ -68,6 +71,8 @@ public:
private: private:
Model::ThreadWaitObject** fWaitObjects; Model::ThreadWaitObject** fWaitObjects;
int32 fCount; 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 int32
ThreadModel::WaitObjectGroup::CountWaitObjects() const ThreadModel::WaitObjectGroup::CountWaitObjects() const
{ {