summaryrefslogtreecommitdiff
path: root/src/mongo/db/stats/timer_stats.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/stats/timer_stats.cpp')
-rw-r--r--src/mongo/db/stats/timer_stats.cpp67
1 files changed, 32 insertions, 35 deletions
diff --git a/src/mongo/db/stats/timer_stats.cpp b/src/mongo/db/stats/timer_stats.cpp
index 728f05cb3f3..1030d296eb4 100644
--- a/src/mongo/db/stats/timer_stats.cpp
+++ b/src/mongo/db/stats/timer_stats.cpp
@@ -31,47 +31,44 @@
namespace mongo {
- TimerHolder::TimerHolder( TimerStats* stats )
- : _stats( stats ), _recorded( false ){
- }
-
- TimerHolder::~TimerHolder() {
- if ( ! _recorded ) {
- recordMillis();
- }
- }
+TimerHolder::TimerHolder(TimerStats* stats) : _stats(stats), _recorded(false) {}
- int TimerHolder::recordMillis() {
- _recorded = true;
- if ( _stats ) {
- return _stats->record( _t );
- }
- return _t.millis();
+TimerHolder::~TimerHolder() {
+ if (!_recorded) {
+ recordMillis();
}
+}
- void TimerStats::recordMillis( int millis ) {
- scoped_spinlock lk( _lock );
- _num++;
- _totalMillis += millis;
+int TimerHolder::recordMillis() {
+ _recorded = true;
+ if (_stats) {
+ return _stats->record(_t);
}
+ return _t.millis();
+}
- int TimerStats::record( const Timer& timer ) {
- int millis = timer.millis();
- recordMillis( millis );
- return millis;
- }
+void TimerStats::recordMillis(int millis) {
+ scoped_spinlock lk(_lock);
+ _num++;
+ _totalMillis += millis;
+}
- BSONObj TimerStats::getReport() const {
- long long n, t;
- {
- scoped_spinlock lk( _lock );
- n = _num;
- t = _totalMillis;
- }
- BSONObjBuilder b(64);
- b.appendNumber( "num", n );
- b.appendNumber( "totalMillis" , t );
- return b.obj();
+int TimerStats::record(const Timer& timer) {
+ int millis = timer.millis();
+ recordMillis(millis);
+ return millis;
+}
+BSONObj TimerStats::getReport() const {
+ long long n, t;
+ {
+ scoped_spinlock lk(_lock);
+ n = _num;
+ t = _totalMillis;
}
+ BSONObjBuilder b(64);
+ b.appendNumber("num", n);
+ b.appendNumber("totalMillis", t);
+ return b.obj();
+}
}