scheduler: Use C++11 member initialization, add shutdown assert

"Initializing the members in the declaration makes it easy to spot
uninitialized ones".
https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#c-data-structures
pull/764/head
MarcoFalke 5 years ago
parent 3516a31eaa
commit fa70ccc6c4
No known key found for this signature in database
GPG Key ID: CE2B75697E69A548

@ -9,13 +9,14 @@
#include <assert.h>
#include <utility>
CScheduler::CScheduler() : nThreadsServicingQueue(0), stopRequested(false), stopWhenEmpty(false)
CScheduler::CScheduler()
{
}
CScheduler::~CScheduler()
{
assert(nThreadsServicingQueue == 0);
if (stopWhenEmpty) assert(taskQueue.empty());
}

@ -86,9 +86,9 @@ private:
mutable Mutex newTaskMutex;
std::condition_variable newTaskScheduled;
std::multimap<std::chrono::system_clock::time_point, Function> taskQueue GUARDED_BY(newTaskMutex);
int nThreadsServicingQueue GUARDED_BY(newTaskMutex);
bool stopRequested GUARDED_BY(newTaskMutex);
bool stopWhenEmpty GUARDED_BY(newTaskMutex);
int nThreadsServicingQueue GUARDED_BY(newTaskMutex){0};
bool stopRequested GUARDED_BY(newTaskMutex){false};
bool stopWhenEmpty GUARDED_BY(newTaskMutex){false};
bool shouldStop() const EXCLUSIVE_LOCKS_REQUIRED(newTaskMutex) { return stopRequested || (stopWhenEmpty && taskQueue.empty()); }
};

Loading…
Cancel
Save