mirror of
https://github.com/zeek/zeek.git
synced 2025-10-12 03:28:19 +00:00
Adding thread statistics to prof.log
This commit is contained in:
parent
4f0fc571ef
commit
1058e11ffb
3 changed files with 52 additions and 1 deletions
|
@ -101,4 +101,21 @@ void Manager::Process()
|
|||
next_beat = network_time + HEART_BEAT_INTERVAL;
|
||||
}
|
||||
|
||||
const threading::Manager::msg_stats_list& threading::Manager::GetMsgThreadStats()
|
||||
{
|
||||
stats.clear();
|
||||
|
||||
for ( msg_thread_list::iterator i = msg_threads.begin(); i != msg_threads.end(); i++ )
|
||||
{
|
||||
MsgThread* t = *i;
|
||||
|
||||
MsgThread::Stats s;
|
||||
t->GetStats(&s);
|
||||
|
||||
stats.push_back(std::make_pair(t->Name(),s));
|
||||
}
|
||||
|
||||
return stats;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -43,6 +43,25 @@ public:
|
|||
*/
|
||||
void Terminate();
|
||||
|
||||
typedef std::list<std::pair<string, MsgThread::Stats> > msg_stats_list;
|
||||
|
||||
/**
|
||||
* Returns statistics from all current MsgThread instances.
|
||||
*
|
||||
* @return A list of statistics, with one entry for each MsgThread.
|
||||
* Each entry is a tuple of thread name and statistics. The list
|
||||
* reference remains valid until the next call to this method (or
|
||||
* termination of the manager).
|
||||
*/
|
||||
const msg_stats_list& GetMsgThreadStats();
|
||||
|
||||
/**
|
||||
* Returns the number of currently active threads. This counts all
|
||||
* threads that are not yet joined, includingt any potentially in
|
||||
* Terminating() state.
|
||||
*/
|
||||
int NumThreads() const { return all_threads.size(); }
|
||||
|
||||
protected:
|
||||
friend class BasicThread;
|
||||
friend class MsgThread;
|
||||
|
@ -96,6 +115,8 @@ private:
|
|||
|
||||
bool did_process; // True if the last Process() found some work to do.
|
||||
double next_beat; // Timestamp when the next heartbeat will be sent.
|
||||
|
||||
msg_stats_list stats;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue