zcashd/src
Akio Nakamura e3ed38d19c Prevent mutex lock fail even if --enable-debug
This PR intends to resolve #15227.

"configure --debug-enabled" enables "#ifdef DEBUG_LOCKORDER".
Then "lockdata" (in sync.cpp) will be initialized same as other
static objects.

But unfortunately, lockdata.push_lock() was called before its
initialization (via initializing signatureCache which is declared
in script/sigcache.cpp) on macOS.

This PR apply the "Construct On First Use Idiom" to "lockdata"
to prevent it.

(cherry picked from commit b09dab0f2de37be3c96f5087ee7bd61d7262aa76)
2021-04-20 15:11:57 +12:00
..
bench bench: Add benchmark for CRollingBloomFilter::reset 2021-04-02 16:04:55 +13:00
compat Default to defining endian-conversion DECLs in compat w/o config 2020-12-20 22:42:22 +00:00
config
consensus Document UPGRADE_ZFUTURE 2021-03-24 08:17:32 -06:00
crypto Add a FastRandomContext::randrange and use it 2021-02-17 15:43:43 -07:00
fuzzing Added libfuzzer support. 2020-08-12 21:41:30 +01:00
gtest Add feature flagging tests. 2021-03-23 19:38:30 -06:00
leveldb Partial revert of "Update links". See #4904 2020-12-17 01:42:03 +00:00
obj Bump version numbers for 0.6.1rc1 2012-04-27 10:14:33 -04:00
policy Reduce the default fee for z_* operations, and the "low fee penalty" threshold for mempool limiting, to 1000 zatoshis. 2020-12-18 12:37:03 -07:00
pow/tromp lint: Fix missing or inconsistent include guards 2020-11-09 23:06:21 +00:00
primitives CurrentTxVersionInfo should return SPROUT_MIN_CURRENT_VERSION pre-overwinter. 2021-04-02 17:04:02 -06:00
rpc Add missing cs_main locks when calling blockToJSON/blockheaderToJSON 2021-04-12 17:15:22 -06:00
rust rust: Add license header to metrics_ffi::prometheus 2021-03-31 09:19:17 +13:00
script Fix include guards 2021-04-14 12:54:12 +12:00
secp256k1 Update secp256k1 subtree to latest master 2021-01-25 21:35:39 +00:00
support allocators: Apply Allocator named requirements to secure_allocator::deallocate 2020-09-28 16:22:43 +01:00
test Auto merge of #5026 - str4d:bloom-filter-backports, r=str4d 2021-04-15 20:40:26 +00:00
univalue Merge commit '9e26ae1c78fe62e23dcca7b22e1cd1a42b45dd25' into univalue-update 2021-01-25 19:50:54 +00:00
wallet Auto merge of #5017 - LarryRuane:upstream-locking-0.16, r=str4d 2021-04-17 03:52:26 +00:00
zcash prevector: Terminate without logging on failed allocation 2020-12-20 22:42:22 +00:00
zmq [depends, zmq, doc] avoid deprecated zeromq api functions 2020-10-05 22:54:19 +01:00
.clang-format clang-format: Delete ForEachMacros 2020-11-23 23:07:15 +00:00
Makefile.am Remove mruset as it is no longer used. 2021-02-19 20:16:10 +00:00
Makefile.bench.include build: Add missing LIBUNIVALUE to Makefile.bench.include LDADD 2020-10-13 14:12:41 +01:00
Makefile.gtest.include Add feature flagging tests. 2021-03-23 19:38:30 -06:00
Makefile.leveldb.include Update license headers 2020-09-25 16:02:25 +01:00
Makefile.test.include Add CheckQueue Tests 2021-04-02 12:22:48 -06:00
addrdb.cpp scripted-diff: Remove direct usages of boost::filesystem 2021-04-14 12:52:15 +12:00
addrdb.h Remove duplicate / unused includes 2021-04-14 12:53:06 +12:00
addressindex.h
addrman.cpp Switch FastRandomContext to ChaCha20 2021-02-17 15:43:43 -07:00
addrman.h addrman: Add missing lock in Clear() (CAddrMan) 2021-04-12 17:15:22 -06:00
alert.cpp scripted-diff: Remove #include <boost/foreach.hpp> 2020-11-23 23:07:15 +00:00
alert.h Move GetWarnings and related globals to util. 2020-02-21 01:28:13 +00:00
alertkeys.h
amount.cpp Always allow transactions paying at least DEFAULT_FEE to be relayed, and do not rate-limit them. 2020-12-18 21:19:23 +00:00
amount.h Always allow transactions paying at least DEFAULT_FEE to be relayed, and do not rate-limit them. 2020-12-18 21:19:23 +00:00
arith_uint256.cpp
arith_uint256.h
asyncrpcoperation.cpp Add univalue to updatecheck.py and update univalue, removing calls to deprecated methods 2020-05-14 12:42:19 -06:00
asyncrpcoperation.h lint: Fix missing or inconsistent include guards 2020-11-09 23:06:21 +00:00
asyncrpcqueue.cpp
asyncrpcqueue.h lint: Fix missing or inconsistent include guards 2020-11-09 23:06:21 +00:00
base58.cpp
base58.h
bech32.cpp
bech32.h
bitcoin-cli-res.rc
bitcoin-cli.cpp Apply suggestions from code review 2021-01-12 17:09:20 +00:00
bitcoin-tx-res.rc
bitcoin-tx.cpp refactor: Drop boost::this_thread::interruption_point and boost::thread_interrupted in main thread 2020-11-23 23:07:15 +00:00
bitcoind-res.rc
bitcoind.cpp util: Replace boost::signals2 with std::function 2020-11-23 23:07:15 +00:00
bloom.cpp net: remove is{Empty,Full} flags from CBloomFilter, clarify CVE fix 2021-04-02 16:06:41 +13:00
bloom.h doc: clarify CRollingBloomFilter size estimate 2021-04-02 16:06:43 +13:00
chain.cpp Refactor: Remove using namespace <xxx> from src/*.cpp. 2021-04-02 16:04:55 +13:00
chain.h scripted-diff: Migrate from boost::optional to std::optional 2020-12-16 22:59:35 +00:00
chainparams.cpp Merge remote-tracking branch 'upstream/master' into feature/3722-feature_flags 2021-04-02 09:02:16 -06:00
chainparams.h test: Re-enable regtest difficulty adjustment for unit tests that use it 2020-11-18 12:17:57 +00:00
chainparamsbase.cpp
chainparamsbase.h
chainparamsseeds.h
checkpoints.cpp scripted-diff: Remove #include <boost/foreach.hpp> 2020-11-23 23:07:15 +00:00
checkpoints.h Remove redundant CheckBlock calls. 2020-10-07 13:07:34 -06:00
checkqueue.h Fix CCheckQueue IsIdle (potential) race condition and remove dangerous constructors. 2021-04-02 12:22:48 -06:00
clientversion.cpp
clientversion.h make-release.py: Versioning changes for 4.4.0. 2021-04-15 16:42:53 +12:00
coincontrol.h
coins.cpp Use C++11 thread-safe static initializers 2021-02-17 08:07:00 -07:00
coins.h Use C++11 thread-safe static initializers 2021-02-17 08:07:00 -07:00
compat.h Minimal code changes to allow msvc compilation. 2020-04-30 17:40:26 +12:00
compressor.cpp
compressor.h
core_io.h
core_memusage.h
core_read.cpp Refactor: Remove using namespace <xxx> from src/*.cpp. 2021-04-02 16:04:55 +13:00
core_write.cpp Refactor: Remove using namespace <xxx> from src/*.cpp. 2021-04-02 16:04:55 +13:00
dbwrapper.cpp util: Replace boost::signals2 with std::function 2020-11-23 23:07:15 +00:00
dbwrapper.h Replace uses of boost::filesystem with fs 2020-10-22 01:11:37 +01:00
deprecation.cpp
deprecation.h make-release.py: Versioning changes for 4.4.0. 2021-04-15 16:42:53 +12:00
experimental_features.cpp scripted-diff: Migrate from boost::optional to std::optional 2020-12-16 22:59:35 +00:00
experimental_features.h scripted-diff: Migrate from boost::optional to std::optional 2020-12-16 22:59:35 +00:00
fs.cpp Remove unused Boost includes 2020-10-22 01:11:37 +01:00
fs.h Update links 2020-12-13 11:24:44 +02:00
hash.cpp Support SipHash with arbitrary byte writes 2021-02-16 18:00:22 -07:00
hash.h Support SipHash with arbitrary byte writes 2021-02-16 18:00:22 -07:00
httprpc.cpp scripted-diff: Remove #include <boost/foreach.hpp> 2020-11-23 23:07:15 +00:00
httprpc.h
httpserver.cpp http: Remove numThreads and ThreadCounter 2021-04-12 17:15:23 -06:00
httpserver.h httpserver: replace boost threads with std 2020-09-30 12:48:35 +01:00
init.cpp Refactor: Remove using namespace <xxx> from src/*.cpp. 2021-04-02 16:04:55 +13:00
init.h Add an RPC method for setting the tracing filter directives 2020-08-07 15:26:28 +01:00
key.cpp Do not shadow variables 2021-04-02 16:04:55 +13:00
key.h Minor additional OpenSSL scouring. 2020-09-30 10:44:42 +01:00
key_constants.h Fix typo in constant. 2020-07-09 18:26:11 -06:00
key_io.cpp scripted-diff: Migrate from boost::variant to std::variant 2020-12-16 22:49:53 +00:00
key_io.h Fix missing or inconsistent include guards 2020-10-27 23:05:02 +00:00
keystore.cpp Fix for incorrect locking in GetPubKey() (keystore.cpp) 2021-02-19 15:11:22 -07:00
keystore.h keystore GetKeys(): return result instead of writing to reference 2021-04-12 17:15:22 -06:00
limitedmap.h Disallow unlimited limited maps 2021-02-18 19:03:58 +00:00
logging.cpp prevector: Terminate without logging on failed allocation 2020-12-20 22:42:22 +00:00
logging.h Update links 2020-12-13 11:24:44 +02:00
main.cpp Auto merge of #5017 - LarryRuane:upstream-locking-0.16, r=str4d 2021-04-17 03:52:26 +00:00
main.h Add whitelistforcerelay to control forced relaying. 2021-02-22 18:26:40 -07:00
mempool_limit.cpp prevector: Terminate without logging on failed allocation 2020-12-20 22:42:22 +00:00
mempool_limit.h Remove JSDescription::h_sig 2020-12-20 22:42:22 +00:00
memusage.h scripted-diff: Remove #include <boost/foreach.hpp> 2020-11-23 23:07:15 +00:00
merkleblock.cpp Refactor: Remove using namespace <xxx> from src/*.cpp. 2021-04-02 16:04:55 +13:00
merkleblock.h
metrics.cpp Cleanup: get the definition of ENABLE_VIRTUAL_TERMINAL_PROCESSING from wincon.h. 2021-04-06 16:41:28 +01:00
metrics.h scripted-diff: Migrate from boost::optional to std::optional 2020-12-16 22:59:35 +00:00
miner.cpp Auto merge of #4892 - str4d:boosted, r=str4d 2020-12-17 02:42:55 +00:00
miner.h Remove duplicate / unused includes 2021-04-14 12:53:06 +12:00
net.cpp Remove duplicate / unused includes 2021-04-14 12:53:06 +12:00
net.h Move CNode::addrLocal access behind locked accessors 2021-04-02 12:55:48 +13:00
netbase.cpp net: Fix CIDR notation in ToString() 2021-02-16 18:02:25 +00:00
netbase.h Adding CSubNet constructor over a single CNetAddr 2021-02-16 18:02:24 +00:00
noui.cpp util: Replace boost::signals2 with std::function 2020-11-23 23:07:15 +00:00
noui.h
pow.cpp scripted-diff: Migrate from boost::optional to std::optional 2020-12-16 22:59:35 +00:00
pow.h Revert "Pass the block height through to CheckEquihashSolution()" 2020-07-15 16:16:40 +12:00
prevector.h prevector::swap: fix (unreached) data corruption 2021-02-17 10:56:59 -07:00
proof_verifier.cpp scripted-diff: Migrate from boost::variant to std::variant 2020-12-16 22:49:53 +00:00
proof_verifier.h Replace libsodium's crypto_sign with ed25519-zebra 2020-08-20 19:00:47 +01:00
protocol.cpp
protocol.h
pubkey.cpp Do not shadow variables 2021-04-02 16:04:55 +13:00
pubkey.h Do not shadow variables 2021-04-02 16:04:55 +13:00
random.cpp Switch FastRandomContext to ChaCha20 2021-02-17 15:43:43 -07:00
random.h Add a FastRandomContext::randrange and use it 2021-02-17 15:43:43 -07:00
rest.cpp Add missing cs_main locks when calling blockToJSON/blockheaderToJSON 2021-04-12 17:15:22 -06:00
reverse_iterator.h Introduce src/reverse_iterator.hpp and include it... 2020-11-23 23:07:15 +00:00
reverselock.h Do not shadow variables 2021-04-02 16:04:55 +13:00
scheduler.cpp Notify other serviceQueue thread we are finished to prevent deadlocks. 2021-02-19 15:11:22 -07:00
scheduler.h Remove remaining instances of boost::function 2020-02-04 20:08:25 -07:00
sendalert.cpp scripted-diff: Fully remove BOOST_FOREACH 2020-11-23 23:07:15 +00:00
serialize.h scripted-diff: Migrate from boost::optional to std::optional 2020-12-16 22:59:35 +00:00
spentindex.h
streams.h CBufferedFile: use eof() method rather than feof(src) in error message. 2020-08-26 13:20:20 +01:00
sync.cpp Prevent mutex lock fail even if --enable-debug 2021-04-20 15:11:57 +12:00
sync.h Add ability to assert a lock is not held in DEBUG_LOCKORDER 2021-04-12 17:15:22 -06:00
threadsafety.h Update links 2020-12-13 11:24:44 +02:00
timedata.cpp Move time data log print to 'net' category to reduce log noise 2021-02-18 19:34:58 +00:00
timedata.h Update GetAdjustedTime() to GetTime(). 2020-02-25 16:57:22 +00:00
timestampindex.h
tinyformat.h Update links 2020-12-13 11:24:44 +02:00
torcontrol.cpp Do not shadow variables 2021-04-02 16:04:55 +13:00
torcontrol.h
transaction_builder.cpp Use SipHash-2-4 for CCoinsCache index 2021-02-11 11:10:42 -07:00
transaction_builder.h Store inputs and outputs by reference in JSDescriptionInfo 2020-12-21 02:18:35 +00:00
txdb.cpp Zero-initialize HistoryNode values. 2020-07-23 16:24:48 -06:00
txdb.h Add ZIP 221 logic to block index 2020-04-08 08:49:01 +12:00
txmempool.cpp Refactor: Remove using namespace <xxx> from src/*.cpp. 2021-04-02 16:04:55 +13:00
txmempool.h Switch CTxMempool::mapTx to use a hash index for txids 2021-02-11 11:10:42 -07:00
ui_interface.h [Qt] add ui signal for banlist changes 2021-02-16 18:02:25 +00:00
uint252.h lint: Fix missing or inconsistent include guards 2020-11-09 23:06:21 +00:00
uint256.cpp Use SipHash-2-4 for CCoinsCache index 2021-02-11 11:10:42 -07:00
uint256.h Use SipHash-2-4 for CCoinsCache index 2021-02-11 11:10:42 -07:00
undo.h
util.cpp Lock mapArgs/mapMultiArgs access in util 2021-04-01 14:29:40 -06:00
util.h Squashed 'src/secp256k1/' changes from 3967d96bf1..a4abaab793 2021-01-25 20:27:37 +00:00
utilmoneystr.cpp
utilmoneystr.h
utilstrencodings.cpp Update links 2020-12-13 11:24:44 +02:00
utilstrencodings.h Update links 2020-12-13 11:24:44 +02:00
utiltest.cpp Adding base NU5 declarations and logic 2021-03-06 17:35:54 -08:00
utiltest.h Adding base NU5 declarations and logic 2021-03-06 17:35:54 -08:00
utiltime.cpp Fix race when accessing std::locale::classic() 2021-04-01 14:29:40 -06:00
utiltime.h
validationinterface.cpp Auto merge of #4892 - str4d:boosted, r=str4d 2020-12-17 02:42:55 +00:00
validationinterface.h scripted-diff: Migrate from boost::optional to std::optional 2020-12-16 22:59:35 +00:00
version.h Set activation height for Canopy on mainnet. 2020-09-01 13:16:05 -06:00
warnings.cpp Update links 2020-12-13 11:24:44 +02:00
warnings.h Update links 2020-12-13 11:24:44 +02:00
zcbenchmarks.cpp Store inputs and outputs by reference in JSDescriptionInfo 2020-12-21 02:18:35 +00:00
zcbenchmarks.h lint: Fix missing or inconsistent include guards 2020-11-09 23:06:21 +00:00