* external dependencies to the SBuf code
*/
-static StatHist sbufDestructTimeStats;
-static StatHist memblobDestructTimeStats;
-
-namespace SBufDetailedStatsHistInitializer
-{
-// run the post-instantiation initialization methods for StatHist objects
-struct Initializer {
- Initializer() {
- sbufDestructTimeStats.logInit(100,30.0,128000.0);
- memblobDestructTimeStats.logInit(100,30.0,128000.0);
- }
-};
-Initializer initializer;
+static StatHist *
+newStatHist() {
+ StatHist *stats = new StatHist;
+ stats->logInit(100, 30.0, 128000.0);
+ return stats;
}
-void
-recordSBufSizeAtDestruct(SBuf::size_type sz)
+StatHist &
+collectSBufDestructTimeStats()
{
- sbufDestructTimeStats.count(static_cast<double>(sz));
+ static StatHist *stats = newStatHist();
+ return *stats;
}
-const StatHist *
-collectSBufDestructTimeStats()
+StatHist &
+collectMemBlobDestructTimeStats()
{
- return &sbufDestructTimeStats;
+ static StatHist *stats = newStatHist();
+ return *stats;
}
void
-recordMemBlobSizeAtDestruct(SBuf::size_type sz)
+recordSBufSizeAtDestruct(SBuf::size_type sz)
{
- memblobDestructTimeStats.count(static_cast<double>(sz));
+ collectSBufDestructTimeStats().count(static_cast<double>(sz));
}
-const StatHist *
-collectMemBlobDestructTimeStats()
+void
+recordMemBlobSizeAtDestruct(SBuf::size_type sz)
{
- return &memblobDestructTimeStats;
+ collectMemBlobDestructTimeStats().count(static_cast<double>(sz));
}
/// Record the size a SBuf had when it was destructed
void recordSBufSizeAtDestruct(SBuf::size_type sz);
-/** Collect the SBuf size-at-destruct-time histogram
- *
- * \note the returned StatHist object must not be freed
- */
-const StatHist * collectSBufDestructTimeStats();
+/// the SBuf size-at-destruct-time histogram
+StatHist &collectSBufDestructTimeStats();
/// Record the size a MemBlob had when it was destructed
void recordMemBlobSizeAtDestruct(MemBlob::size_type sz);
-/** Collect the MemBlob size-at-destruct-time histogram
- *
- * \note the returned StatHist object must not be freed
- */
-const StatHist * collectMemBlobDestructTimeStats();
+/// the MemBlob size-at-destruct-time histogram
+StatHist &collectMemBlobDestructTimeStats();
#endif /* SQUID_SBUFDETAILEDSTATS_H */
{
sbdata = SBuf::GetStats();
mbdata = MemBlob::GetStats();
- sbsizesatdestruct = *collectSBufDestructTimeStats();
- mbsizesatdestruct = *collectMemBlobDestructTimeStats();
+ sbsizesatdestruct = collectSBufDestructTimeStats();
+ mbsizesatdestruct = collectMemBlobDestructTimeStats();
}
static void