dash/src/llmq
Wladimir J. van der Laan 9b8884b430
partial Merge #18234: refactor: Replace boost::mutex,condition_var,chrono with std equivalents in scheduler
This backport does not include changes that depend on bitcoin pr 18037

70a6b529f306ff72ea1badf25e970a92b2b17ab3 lint-cppcheck: Remove -DHAVE_WORKING_BOOST_SLEEP_FOR (Anthony Towns)
294937b39de5924e772f8ed90d35c53290c8acab scheduler_tests: re-enable mockforward test (Anthony Towns)
cea19f685915be8affb2203184a549576194413f Drop unused reverselock.h (Anthony Towns)
d0ebd93270758ea97ea956b8821e17a2d001ea94 scheduler: switch from boost to std (Anthony Towns)
b9c426012770d166e6ebfab27689be44e6e89aa5 sync.h: add REVERSE_LOCK (Anthony Towns)
306f71b4eb4a0fd8e64f47dc008bc235b80b13d9 scheduler: don't rely on boost interrupt on shutdown (Anthony Towns)

Pull request description:

  Replacing boost functionality with C++11 stuff.

  Motivated by #18227, but should stand alone. Changing from `boost::condition_var` to `std::condition_var` means `threadGroup.interrupt_all` isn't enough to interrupt `serviceQueue` anymore, so that means calling `stop()` before `join_all()` is needed. And the existing reverselock.h code doesn't work with sync.h's DebugLock code (because the reversed lock won't be removed from `g_lockstack` which then leads to incorrect potential deadlock warnings), so I've replaced that with a dedicated class and macro that's aware of our debug lock behaviour.

  Fixes #16027, Fixes #14200, Fixes #18227

ACKs for top commit:
  laanwj:
    ACK 70a6b529f306ff72ea1badf25e970a92b2b17ab3

Tree-SHA512: d1da13adeabcf9186d114e2dad9a4fdbe2e440f7afbccde0c13dfbaf464efcd850b69d3371c5bf8b179d7ceb9d81f4af3cc22960b90834e41eaaf6d52ef7d331

# Conflicts:
#	src/reverselock.h
#	src/rpc/misc.cpp
#	src/scheduler.cpp
#	src/scheduler.h
#	src/sync.cpp
#	src/sync.h
#	src/test/reverselock_tests.cpp
#	src/test/scheduler_tests.cpp
#	src/test/test_dash.cpp
#	test/lint/extended-lint-cppcheck.sh
2021-09-28 19:42:22 -04:00
..
quorums_blockprocessor.cpp refactor: More constness and thread safety for LLMQ modules (#4392) 2021-09-08 01:33:02 +03:00
quorums_blockprocessor.h refactor: More constness and thread safety for LLMQ modules (#4392) 2021-09-08 01:33:02 +03:00
quorums_chainlocks.cpp partial Merge #18234: refactor: Replace boost::mutex,condition_var,chrono with std equivalents in scheduler 2021-09-28 19:42:22 -04:00
quorums_chainlocks.h refactor: More constness and thread safety for LLMQ modules (#4392) 2021-09-08 01:33:02 +03:00
quorums_commitment.cpp Merge #15266: memory: Construct globals on first use 2021-09-16 07:41:45 +05:30
quorums_commitment.h Other Dash-specific serializations 2021-05-28 12:31:13 +03:00
quorums_debug.cpp refactor: More constness and thread safety for LLMQ modules (#4392) 2021-09-08 01:33:02 +03:00
quorums_debug.h refactor: More constness and thread safety for LLMQ modules (#4392) 2021-09-08 01:33:02 +03:00
quorums_dkgsession.cpp Fix data races triggered by functional tests. (#4247) 2021-07-26 10:52:52 -05:00
quorums_dkgsession.h refactor: More constness and thread safety for LLMQ modules (#4392) 2021-09-08 01:33:02 +03:00
quorums_dkgsessionhandler.cpp refactor: More constness and thread safety for LLMQ modules (#4392) 2021-09-08 01:33:02 +03:00
quorums_dkgsessionhandler.h refactor: More constness and thread safety for LLMQ modules (#4392) 2021-09-08 01:33:02 +03:00
quorums_dkgsessionmgr.cpp refactor: More constness and thread safety for LLMQ modules (#4392) 2021-09-08 01:33:02 +03:00
quorums_dkgsessionmgr.h refactor: More constness and thread safety for LLMQ modules (#4392) 2021-09-08 01:33:02 +03:00
quorums_init.cpp llmq: Split "llmq" db (#4141) 2021-08-11 19:58:03 +03:00
quorums_init.h Update copyright (#4115) 2021-04-20 22:33:02 +03:00
quorums_instantsend.cpp instantsend: Add islocks created from recovered sigs to the queue (#4422) 2021-09-14 14:03:26 +03:00
quorums_instantsend.h refactor: More constness and thread safety for LLMQ modules (#4392) 2021-09-08 01:33:02 +03:00
quorums_signing_shares.cpp refactor: adjust cs_main usage in llmq code (#4324) 2021-08-10 22:37:27 +03:00
quorums_signing_shares.h refactor: More constness and thread safety for LLMQ modules (#4392) 2021-09-08 01:33:02 +03:00
quorums_signing.cpp refactor: More constness and thread safety for LLMQ modules (#4392) 2021-09-08 01:33:02 +03:00
quorums_signing.h refactor: More constness and thread safety for LLMQ modules (#4392) 2021-09-08 01:33:02 +03:00
quorums_utils.cpp Static analysis fixes (#4316) 2021-08-07 00:55:51 +03:00
quorums_utils.h Update copyright (#4115) 2021-04-20 22:33:02 +03:00
quorums.cpp Fix thread names for threads started via pools (#4349) 2021-08-24 19:18:52 +03:00
quorums.h refactor: More constness and thread safety for LLMQ modules (#4392) 2021-09-08 01:33:02 +03:00