diff options
author | Matt Corallo <git@bluematt.me> | 2017-06-27 19:07:52 -0400 |
---|---|---|
committer | Matt Corallo <git@bluematt.me> | 2017-07-07 12:55:57 -0400 |
commit | 3192975f1d177aa9f0bbd823c6387cfbfa943610 (patch) | |
tree | c14016ecb6fc50d7fc33b002368348efa8e12745 /src/scheduler.cpp | |
parent | 08096bbbc6d6fef86943ca8ce5e6de18744d58ea (diff) |
Flush CValidationInterface callbacks prior to destruction
Note that the CScheduler thread cant be running at this point,
it has already been stopped with the rest of the init threadgroup.
Thus, just calling any remaining loose callbacks during Shutdown()
is sane.
Diffstat (limited to 'src/scheduler.cpp')
-rw-r--r-- | src/scheduler.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/scheduler.cpp b/src/scheduler.cpp index a76a87e10a..35bf0da4be 100644 --- a/src/scheduler.cpp +++ b/src/scheduler.cpp @@ -191,3 +191,12 @@ void SingleThreadedSchedulerClient::AddToProcessQueue(std::function<void (void)> } MaybeScheduleProcessQueue(); } + +void SingleThreadedSchedulerClient::EmptyQueue() { + bool should_continue = true; + while (should_continue) { + ProcessQueue(); + LOCK(m_cs_callbacks_pending); + should_continue = !m_callbacks_pending.empty(); + } +} |