Skip to content

Commit 4f4fa58

Browse files
committed
Have list_channels* methods only acquire an RwLockReadGuard
1 parent ad39e2f commit 4f4fa58

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

lightning/src/ln/channelmanager.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -2639,8 +2639,8 @@ where
26392639
let best_block_height = self.best_block.read().unwrap().height;
26402640
let per_peer_state = self.per_peer_state.read().unwrap();
26412641
for (_cp_id, peer_state_rwlock) in per_peer_state.iter() {
2642-
let mut peer_state_lock = peer_state_rwlock.write().unwrap();
2643-
let peer_state = &mut *peer_state_lock;
2642+
let peer_state_lock = peer_state_rwlock.read().unwrap();
2643+
let peer_state = &*peer_state_lock;
26442644
res.extend(peer_state.channel_by_id.iter()
26452645
.filter_map(|(chan_id, phase)| match phase {
26462646
// Only `Channels` in the `ChannelPhase::Funded` phase can be considered funded.
@@ -2672,8 +2672,8 @@ where
26722672
let best_block_height = self.best_block.read().unwrap().height;
26732673
let per_peer_state = self.per_peer_state.read().unwrap();
26742674
for (_cp_id, peer_state_rwlock) in per_peer_state.iter() {
2675-
let mut peer_state_lock = peer_state_rwlock.write().unwrap();
2676-
let peer_state = &mut *peer_state_lock;
2675+
let peer_state_lock = peer_state_rwlock.read().unwrap();
2676+
let peer_state = &*peer_state_lock;
26772677
for context in peer_state.channel_by_id.iter().map(|(_, phase)| phase.context()) {
26782678
let details = ChannelDetails::from_channel_context(context, best_block_height,
26792679
peer_state.latest_features.clone(), &self.fee_estimator);
@@ -2703,8 +2703,8 @@ where
27032703
let per_peer_state = self.per_peer_state.read().unwrap();
27042704

27052705
if let Some(peer_state_rwlock) = per_peer_state.get(counterparty_node_id) {
2706-
let mut peer_state_lock = peer_state_rwlock.write().unwrap();
2707-
let peer_state = &mut *peer_state_lock;
2706+
let peer_state_lock = peer_state_rwlock.read().unwrap();
2707+
let peer_state = &*peer_state_lock;
27082708
let features = &peer_state.latest_features;
27092709
let context_to_details = |context| {
27102710
ChannelDetails::from_channel_context(context, best_block_height, features.clone(), &self.fee_estimator)

0 commit comments

Comments
 (0)