diff options
| author | Matt Corallo <[email protected]> | 2017-06-27 19:07:52 -0400 |
|---|---|---|
| committer | Matt Corallo <[email protected]> | 2017-07-07 12:55:57 -0400 |
| commit | 3192975f1d177aa9f0bbd823c6387cfbfa943610 (patch) | |
| tree | c14016ecb6fc50d7fc33b002368348efa8e12745 /src/scheduler.cpp | |
| parent | Support more than one CScheduler thread for serial clients (diff) | |
| download | discoin-3192975f1d177aa9f0bbd823c6387cfbfa943610.tar.xz discoin-3192975f1d177aa9f0bbd823c6387cfbfa943610.zip | |
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 a76a87e10..35bf0da4b 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(); + } +} |