Skip to content

Commit cf2d418

Browse files
committed
Have ChannelManager::write method only acquire an RwLockReadGuard
1 parent aa4abb2 commit cf2d418

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

lightning/src/ln/channelmanager.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -11020,8 +11020,8 @@ where
1102011020
let per_peer_state = self.per_peer_state.read().unwrap();
1102111021
let mut number_of_funded_channels = 0;
1102211022
for (_, peer_state_rwlock) in per_peer_state.iter() {
11023-
let mut peer_state_lock = peer_state_rwlock.write().unwrap();
11024-
let peer_state = &mut *peer_state_lock;
11023+
let peer_state_lock = peer_state_rwlock.read().unwrap();
11024+
let peer_state = &*peer_state_lock;
1102511025
if !peer_state.ok_to_remove(false) {
1102611026
serializable_peer_count += 1;
1102711027
}
@@ -11034,8 +11034,8 @@ where
1103411034
(number_of_funded_channels as u64).write(writer)?;
1103511035

1103611036
for (_, peer_state_rwlock) in per_peer_state.iter() {
11037-
let mut peer_state_lock = peer_state_rwlock.write().unwrap();
11038-
let peer_state = &mut *peer_state_lock;
11037+
let peer_state_lock = peer_state_rwlock.read().unwrap();
11038+
let peer_state = &*peer_state_lock;
1103911039
for channel in peer_state.channel_by_id.iter().filter_map(
1104011040
|(_, phase)| if let ChannelPhase::Funded(channel) = phase {
1104111041
if channel.context.is_funding_broadcast() { Some(channel) } else { None }

0 commit comments

Comments
 (0)