This PR handles concurrent wallet loading.
This can be tested by running in parallel the following script a couple of times:
for i in {1..10}
do
src/bitcoin-cli -regtest loadwallet foo
src/bitcoin-cli -regtest unloadwallet foo
done
Eventually the error occurs:
error code: -4
error message:
Wallet already being loading.
For reference, loading and already loaded wallet gives:
error code: -4
error message:
Wallet file verification failed. Error loading wallet w1. Duplicate -wallet filename specified.
Fixes #19232.