Prevent RPC 'move' from deadlocking

It seemed to create two CWalletDB objects that both grab the
database lock.
This commit is contained in:
Pieter Wuille
2012-11-13 23:52:37 +01:00
parent eb49457ff2
commit 4291e8feab
3 changed files with 10 additions and 6 deletions

View File

@@ -291,10 +291,14 @@ bool CWallet::EncryptWallet(const SecureString& strWalletPassphrase)
return true;
}
int64 CWallet::IncOrderPosNext()
int64 CWallet::IncOrderPosNext(CWalletDB *pwalletdb)
{
int64 nRet = nOrderPosNext;
CWalletDB(strWalletFile).WriteOrderPosNext(++nOrderPosNext);
int64 nRet = nOrderPosNext++;
if (pwalletdb) {
pwalletdb->WriteOrderPosNext(nOrderPosNext);
} else {
CWalletDB(strWalletFile).WriteOrderPosNext(nOrderPosNext);
}
return nRet;
}