Skip to content

Commit 3658581

Browse files
committed
Have ChannelManager::write method only acquire an RwLockReadGuard
1 parent 7c0010d commit 3658581

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
@@ -10160,8 +10160,8 @@ where
1016010160
let per_peer_state = self.per_peer_state.read().unwrap();
1016110161
let mut number_of_funded_channels = 0;
1016210162
for (_, peer_state_rwlock) in per_peer_state.iter() {
10163-
let mut peer_state_lock = peer_state_rwlock.write().unwrap();
10164-
let peer_state = &mut *peer_state_lock;
10163+
let peer_state_lock = peer_state_rwlock.read().unwrap();
10164+
let peer_state = &*peer_state_lock;
1016510165
if !peer_state.ok_to_remove(false) {
1016610166
serializable_peer_count += 1;
1016710167
}
@@ -10174,8 +10174,8 @@ where
1017410174
(number_of_funded_channels as u64).write(writer)?;
1017510175

1017610176
for (_, peer_state_rwlock) in per_peer_state.iter() {
10177-
let mut peer_state_lock = peer_state_rwlock.write().unwrap();
10178-
let peer_state = &mut *peer_state_lock;
10177+
let peer_state_lock = peer_state_rwlock.read().unwrap();
10178+
let peer_state = &*peer_state_lock;
1017910179
for channel in peer_state.channel_by_id.iter().filter_map(
1018010180
|(_, phase)| if let ChannelPhase::Funded(channel) = phase {
1018110181
if channel.context.is_funding_broadcast() { Some(channel) } else { None }

0 commit comments

Comments
 (0)