Merge pull request #277 from braydonf/cs-isspent

Added critical section lock in isSpent
This commit is contained in:
Patrick Nagurny 2015-10-02 14:31:39 -04:00
commit 54eae61f1d

View File

@ -1231,17 +1231,20 @@ NAN_METHOD(IsSpent) {
const uint256 txid = uint256S(argStr); const uint256 txid = uint256S(argStr);
int outputIndex = info[1]->IntegerValue(); int outputIndex = info[1]->IntegerValue();
CCoinsView dummy; {
CCoinsViewCache view(&dummy); LOCK(mempool.cs);
CCoinsView dummy;
CCoinsViewCache view(&dummy);
CCoinsViewMemPool viewMemPool(pcoinsTip, mempool); CCoinsViewMemPool viewMemPool(pcoinsTip, mempool);
view.SetBackend(viewMemPool); view.SetBackend(viewMemPool);
if (view.HaveCoins(txid)) { if (view.HaveCoins(txid)) {
const CCoins* coins = view.AccessCoins(txid); const CCoins* coins = view.AccessCoins(txid);
if (coins && coins->IsAvailable(outputIndex)) { if (coins && coins->IsAvailable(outputIndex)) {
info.GetReturnValue().Set(New<Boolean>(false)); info.GetReturnValue().Set(New<Boolean>(false));
return; return;
}
} }
} }
info.GetReturnValue().Set(New<Boolean>(true)); info.GetReturnValue().Set(New<Boolean>(true));