Skip to content

Commit 6a9a01a

Browse files
committed
Have list_channels* methods only acquire an RwLockReadGuard
1 parent f1ae10b commit 6a9a01a

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
@@ -3309,8 +3309,8 @@ where
33093309
let best_block_height = self.best_block.read().unwrap().height;
33103310
let per_peer_state = self.per_peer_state.read().unwrap();
33113311
for (_cp_id, peer_state_rwlock) in per_peer_state.iter() {
3312-
let mut peer_state_lock = peer_state_rwlock.write().unwrap();
3313-
let peer_state = &mut *peer_state_lock;
3312+
let peer_state_lock = peer_state_rwlock.read().unwrap();
3313+
let peer_state = &*peer_state_lock;
33143314
res.extend(peer_state.channel_by_id.iter()
33153315
.filter_map(|(chan_id, phase)| match phase {
33163316
// Only `Channels` in the `ChannelPhase::Funded` phase can be considered funded.
@@ -3342,8 +3342,8 @@ where
33423342
let best_block_height = self.best_block.read().unwrap().height;
33433343
let per_peer_state = self.per_peer_state.read().unwrap();
33443344
for (_cp_id, peer_state_rwlock) in per_peer_state.iter() {
3345-
let mut peer_state_lock = peer_state_rwlock.write().unwrap();
3346-
let peer_state = &mut *peer_state_lock;
3345+
let peer_state_lock = peer_state_rwlock.read().unwrap();
3346+
let peer_state = &*peer_state_lock;
33473347
for context in peer_state.channel_by_id.iter().map(|(_, phase)| phase.context()) {
33483348
let details = ChannelDetails::from_channel_context(context, best_block_height,
33493349
peer_state.latest_features.clone(), &self.fee_estimator);
@@ -3373,8 +3373,8 @@ where
33733373
let per_peer_state = self.per_peer_state.read().unwrap();
33743374

33753375
if let Some(peer_state_rwlock) = per_peer_state.get(counterparty_node_id) {
3376-
let mut peer_state_lock = peer_state_rwlock.write().unwrap();
3377-
let peer_state = &mut *peer_state_lock;
3376+
let peer_state_lock = peer_state_rwlock.read().unwrap();
3377+
let peer_state = &*peer_state_lock;
33783378
let features = &peer_state.latest_features;
33793379
let context_to_details = |context| {
33803380
ChannelDetails::from_channel_context(context, best_block_height, features.clone(), &self.fee_estimator)

0 commit comments

Comments
 (0)