Added critical section lock in isSpent
This commit is contained in:
parent
76d466b29b
commit
7070d4c74d
|
@ -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));
|
||||||
|
|
Loading…
Reference in New Issue