diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-02-26 06:11:39 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2020-02-27 16:11:30 +0000 |
commit | 3916ae76a13e5f1e4724ff5d646f64d61741c7fc (patch) | |
tree | 80e01866205419ffd196c657e35d531dff6d5a60 /vespalib | |
parent | 29a02689e66df8801ccfe8246c36f4d2c12f3062 (diff) |
Add a += operator and test ExecutorStats
Diffstat (limited to 'vespalib')
-rw-r--r-- | vespalib/src/tests/executor/threadstackexecutor_test.cpp | 12 | ||||
-rw-r--r-- | vespalib/src/vespa/vespalib/util/executor_stats.h | 11 |
2 files changed, 22 insertions, 1 deletions
diff --git a/vespalib/src/tests/executor/threadstackexecutor_test.cpp b/vespalib/src/tests/executor/threadstackexecutor_test.cpp index db3c4628d2f..987b10526a3 100644 --- a/vespalib/src/tests/executor/threadstackexecutor_test.cpp +++ b/vespalib/src/tests/executor/threadstackexecutor_test.cpp @@ -186,4 +186,16 @@ TEST_F("require that executor thread stack tag can be set", ThreadStackExecutor( } } +TEST("require that stats can be accumulated") { + ThreadStackExecutor::Stats stats(1,2,3); + EXPECT_EQUAL(1u, stats.maxPendingTasks); + EXPECT_EQUAL(2u, stats.acceptedTasks); + EXPECT_EQUAL(3u, stats.rejectedTasks); + stats += ThreadStackExecutor::Stats(7,8,9); + EXPECT_EQUAL(8u, stats.maxPendingTasks); + EXPECT_EQUAL(10u, stats.acceptedTasks); + EXPECT_EQUAL(12u, stats.rejectedTasks); + +} + TEST_MAIN() { TEST_RUN_ALL(); } diff --git a/vespalib/src/vespa/vespalib/util/executor_stats.h b/vespalib/src/vespa/vespalib/util/executor_stats.h index e8adfc62807..771435fbabf 100644 --- a/vespalib/src/vespa/vespalib/util/executor_stats.h +++ b/vespalib/src/vespa/vespalib/util/executor_stats.h @@ -11,7 +11,16 @@ struct ExecutorStats { size_t maxPendingTasks; size_t acceptedTasks; size_t rejectedTasks; - ExecutorStats() : maxPendingTasks(0), acceptedTasks(0), rejectedTasks(0) {} + ExecutorStats() : ExecutorStats(0, 0, 0) {} + ExecutorStats(size_t maxPending, size_t accepted, size_t rejected) + : maxPendingTasks(maxPending), acceptedTasks(accepted), rejectedTasks(rejected) + {} + ExecutorStats & operator += (const ExecutorStats & rhs) { + maxPendingTasks += rhs.maxPendingTasks; + acceptedTasks += rhs.acceptedTasks; + rejectedTasks += rhs.rejectedTasks; + return *this; + } }; } |