Skip to content

Commit 69fee9c

Browse files
junderwshesek
authored andcommitted
Fix read lock overlap with mempool RwLock
See #57
1 parent f986fba commit 69fee9c

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

src/elements/asset.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,8 @@ pub fn lookup_asset(
363363
}
364364

365365
let history_db = query.chain().store().history_db();
366-
let mempool_issuances = &query.mempool().asset_issuance;
366+
let mempool = query.mempool();
367+
let mempool_issuances = &mempool.asset_issuance;
367368

368369
let chain_row = history_db
369370
.get(&[b"i", &asset_id.into_inner()[..]].concat())
@@ -380,7 +381,7 @@ pub fn lookup_asset(
380381
let meta = meta
381382
.or_else(|| registry.as_ref().and_then(|r| r.get(asset_id)))
382383
.cloned();
383-
let stats = issued_asset_stats(query, asset_id, &reissuance_token);
384+
let stats = issued_asset_stats(query.chain(), &mempool, asset_id, &reissuance_token);
384385
let status = query.get_tx_status(&deserialize(&row.issuance_txid).unwrap());
385386

386387
let asset = IssuedAsset::new(asset_id, row, stats, meta, status);
@@ -460,21 +461,20 @@ fn pegged_asset_stats(query: &Query, asset_id: &AssetId) -> (PeggedAssetStats, P
460461

461462
// Get stats for issued assets
462463
fn issued_asset_stats(
463-
query: &Query,
464+
chain: &ChainQuery,
465+
mempool: &Mempool,
464466
asset_id: &AssetId,
465467
reissuance_token: &AssetId,
466468
) -> (IssuedAssetStats, IssuedAssetStats) {
467469
let afn = apply_issued_asset_stats;
468470

469-
let chain = query.chain();
470471
let mut chain_stats = chain_asset_stats(chain, asset_id, afn);
471472
chain_stats.burned_reissuance_tokens =
472473
chain_asset_stats(chain, reissuance_token, afn).burned_amount;
473474

474-
let mempool = query.mempool();
475475
let mut mempool_stats = mempool_asset_stats(&mempool, &asset_id, afn);
476476
mempool_stats.burned_reissuance_tokens =
477-
mempool_asset_stats(&mempool, &reissuance_token, afn).burned_amount;
477+
mempool_asset_stats(mempool, &reissuance_token, afn).burned_amount;
478478

479479
(chain_stats, mempool_stats)
480480
}

0 commit comments

Comments
 (0)