-
Notifications
You must be signed in to change notification settings - Fork 37.7k
Push down RPC locks #5711
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Push down RPC locks #5711
Conversation
- invalidateblock and reconsiderblock were defined doubly - remove no-longer-used threadSafe, as locks have been pushed down
51a328a
to
5ebe095
Compare
Tested ACK. |
I assume there is a minimal post PR overhaul of https://github.com/bitcoin/bitcoin/blob/master/src/rpcmining.cpp#L444 required. IMO not urgent. |
This commit appears to have broken the rpc-test getblocktemplate_longpoll.py. Relevant failure:
I'm not familiar enough with the test yet to understand what is going on, but I verified the test broke at this commit and succeeds in the previous one. |
I can confirm that the test is broken. I think it has to do with the |
getblocktemplate didn't have a wallet lock before bitcoin#5711 and IMO there is no need for LEAVE/ENTER critical section.
I don't see a need for https://github.com/bitcoin/bitcoin/blob/master/src/rpcmining.cpp#L451 LEAVE and ENTER crictial section. |
9f4868a [move] move listunspent to wallet/rpcwallet.cpp (furszy) e85e4f1 [RPC] Move RPC dispatch table registration to rpcwallet code (furszy) c0bc348 [RPC] push down reqWallet [first step] (furszy) cdb80a6 [RPC] Remove not used threadsafe in CRPCCommand (furszy) Pull request description: Initial work over the RPC dispatch table registration update. Includes the following changes: 1) Remove the unused threadSafe member from every CPRCCommand. (bitcoin#5711 , second commit) 2) Remove reqWallet from every CPRCCommand (bitcoin#5992 , second commit partially). 3) Move most of the wallet RPC commands registration to the rpcwallet file (bitcoin#7307 without the `EnsureWalletIsAvailable` on every RPC call --> mainly because the wallet RPC commands will only be registered if the wallet is available). to do: Move the remaining commands that were not moved from server to rpcwallet. ---------- Next step would be bitcoin#7766 (If anyone want to tackle it, feel more than welcome to tackle it). ACKs for top commit: Fuzzbawls: ACK 9f4868a random-zebra: All good. ACK 9f4868a and merging... Tree-SHA512: cd83cdc2de81efb5cb84d39753a160b19d8ca2967a1b303d85c3279559b478352c5a4316942c7a654e9c667b5a8f5bfa18020c1b6c9e78f4c408028840d0fc86
Rebased version of #5107.