From 423cf7a8d4ec81c05307a50c00536e589b366af6 Mon Sep 17 00:00:00 2001 From: Lars Maier Date: Tue, 8 Jan 2019 16:39:56 +0100 Subject: [PATCH] cppcheck/Scheduler (#7909) --- arangod/Scheduler/Scheduler.cpp | 4 ++-- arangod/Scheduler/Scheduler.h | 3 ++- arangod/Scheduler/SupervisedScheduler.cpp | 22 +++++++++++----------- arangod/Scheduler/SupervisedScheduler.h | 10 ++++++---- lib/Rest/Version.cpp | 2 +- 5 files changed, 22 insertions(+), 19 deletions(-) diff --git a/arangod/Scheduler/Scheduler.cpp b/arangod/Scheduler/Scheduler.cpp index 9d80ae24e3..bcd1f1a79d 100644 --- a/arangod/Scheduler/Scheduler.cpp +++ b/arangod/Scheduler/Scheduler.cpp @@ -48,7 +48,7 @@ namespace arangodb { class SchedulerThread : virtual public Thread { public: - SchedulerThread(Scheduler& scheduler) + explicit SchedulerThread(Scheduler& scheduler) : Thread("Scheduler"), _scheduler(scheduler) {} ~SchedulerThread() { shutdown(); } @@ -58,7 +58,7 @@ class SchedulerThread : virtual public Thread { class SchedulerCronThread : public SchedulerThread { public: - SchedulerCronThread(Scheduler& scheduler) + explicit SchedulerCronThread(Scheduler& scheduler) : Thread("SchedCron"), SchedulerThread(scheduler) {} void run() { _scheduler.runCronThread(); } diff --git a/arangod/Scheduler/Scheduler.h b/arangod/Scheduler/Scheduler.h index 129018ebdf..393f6a0e36 100644 --- a/arangod/Scheduler/Scheduler.h +++ b/arangod/Scheduler/Scheduler.h @@ -74,7 +74,8 @@ class Scheduler { // Runs the WorkItem immediately void run() { executeWithCancel(false); } - WorkItem(std::function&& handler, RequestLane lane, Scheduler* scheduler) + explicit WorkItem(std::function&& handler, + RequestLane lane, Scheduler* scheduler) : _handler(std::move(handler)), _lane(lane), _disable(false), _scheduler(scheduler){}; private: diff --git a/arangod/Scheduler/SupervisedScheduler.cpp b/arangod/Scheduler/SupervisedScheduler.cpp index 366b922247..4094f0a263 100644 --- a/arangod/Scheduler/SupervisedScheduler.cpp +++ b/arangod/Scheduler/SupervisedScheduler.cpp @@ -53,7 +53,7 @@ namespace arangodb { class SupervisedSchedulerThread : virtual public Thread { public: - SupervisedSchedulerThread(SupervisedScheduler& scheduler) + explicit SupervisedSchedulerThread(SupervisedScheduler& scheduler) : Thread("Scheduler"), _scheduler(scheduler) {} ~SupervisedSchedulerThread() { shutdown(); } @@ -63,14 +63,14 @@ class SupervisedSchedulerThread : virtual public Thread { class SupervisedSchedulerManagerThread final : public SupervisedSchedulerThread { public: - SupervisedSchedulerManagerThread(SupervisedScheduler& scheduler) + explicit SupervisedSchedulerManagerThread(SupervisedScheduler& scheduler) : Thread("SchedMan"), SupervisedSchedulerThread(scheduler) {} void run() override { _scheduler.runSupervisor(); }; }; class SupervisedSchedulerWorkerThread final : public SupervisedSchedulerThread { public: - SupervisedSchedulerWorkerThread(SupervisedScheduler& scheduler) + explicit SupervisedSchedulerWorkerThread(SupervisedScheduler& scheduler) : Thread("SchedWorker"), SupervisedSchedulerThread(scheduler) {} void run() override { _scheduler.runWorker(); }; }; @@ -229,14 +229,13 @@ void SupervisedScheduler::runSupervisor() { startOneThread(); } - uint64_t jobsDone, lastJobsDone = 0, jobsSubmitted, lastJobsSubmitted = 0; - uint64_t jobsStallingTick = 0, queueLength, lastQueueLength = 0; - uint64_t jobsDequeued; + uint64_t lastJobsDone = 0, lastJobsSubmitted = 0; + uint64_t jobsStallingTick = 0, lastQueueLength = 0; while (!_stopping) { - jobsDone = _jobsDone.load(std::memory_order_acquire); - jobsSubmitted = _jobsSubmitted.load(std::memory_order_acquire); - jobsDequeued = _jobsDequeued.load(std::memory_order_acquire); + uint64_t jobsDone = _jobsDone.load(std::memory_order_acquire); + uint64_t jobsSubmitted = _jobsSubmitted.load(std::memory_order_acquire); + uint64_t jobsDequeued = _jobsDequeued.load(std::memory_order_acquire); if (jobsDone == lastJobsDone && (jobsDequeued < jobsSubmitted)) { jobsStallingTick++; @@ -244,7 +243,7 @@ void SupervisedScheduler::runSupervisor() { jobsStallingTick--; } - queueLength = jobsSubmitted - jobsDequeued; + uint64_t queueLength = jobsSubmitted - jobsDequeued; bool doStartOneThread = (((queueLength >= 3 * _numWorker) && ((lastQueueLength + _numWorker) < queueLength)) || @@ -423,7 +422,8 @@ SupervisedScheduler::WorkerState::WorkerState(SupervisedScheduler& scheduler) : _queueRetryCount(100), _sleepTimeout_ms(100), _stop(false), - _thread(new SupervisedSchedulerWorkerThread(scheduler)) {} + _thread(new SupervisedSchedulerWorkerThread(scheduler)), + _padding() {} bool SupervisedScheduler::WorkerState::start() { return _thread->start(); } diff --git a/arangod/Scheduler/SupervisedScheduler.h b/arangod/Scheduler/SupervisedScheduler.h index 7e499b5c44..a9fe8e8f9d 100644 --- a/arangod/Scheduler/SupervisedScheduler.h +++ b/arangod/Scheduler/SupervisedScheduler.h @@ -68,8 +68,10 @@ class SupervisedScheduler : public Scheduler { struct WorkItem { std::function _handler; - WorkItem(std::function const& handler) : _handler(handler) {} - WorkItem(std::function&& handler) : _handler(std::move(handler)) {} + explicit WorkItem(std::function const& handler) + : _handler(handler) {} + explicit WorkItem(std::function&& handler) + : _handler(std::move(handler)) {} virtual ~WorkItem() {} virtual void operator()() { _handler(); } @@ -117,10 +119,10 @@ class SupervisedScheduler : public Scheduler { std::atomic _stop, _working; clock::time_point _lastJobStarted; std::unique_ptr _thread; - char padding[40]; + char _padding[40]; // initialize with harmless defaults: spin once, sleep forever - WorkerState(SupervisedScheduler& scheduler); + explicit WorkerState(SupervisedScheduler& scheduler); WorkerState(WorkerState&& that); bool start(); diff --git a/lib/Rest/Version.cpp b/lib/Rest/Version.cpp index b858489f86..c5c305309b 100644 --- a/lib/Rest/Version.cpp +++ b/lib/Rest/Version.cpp @@ -29,8 +29,8 @@ #include -#include #include +#include #include #include