private IEnumerator<BlockTx> ReadBlockTransactions(UInt256 blockHash, IEnumerator<BlockTx> blockTxes)
{
using (blockTxes)
{
while (true)
{
bool read;
try
{
read = blockTxes.MoveNext();
}
catch (MissingDataException e)
{
var missingBlockHash = (UInt256)e.Key;
lock (GetBlockLock(blockHash))
this.presentBlockTxes[missingBlockHash] = false;
throw;
}
if (read)
yield return blockTxes.Current;
else
yield break;
}
}
}