Skip to content

Commit 81a4bd1

Browse files
committed
f describe locking structure a bit more
1 parent 39ef638 commit 81a4bd1

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

lightning/src/ln/peer_handler.rs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -420,10 +420,14 @@ pub struct PeerManager<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: De
420420
L::Target: Logger,
421421
CMH::Target: CustomMessageHandler {
422422
message_handler: MessageHandler<CM, RM>,
423-
/// Peer is under its own mutex for sending and receiving bytes, but note that we do *not* hold
424-
/// this mutex while we're processing a message. This is fine as [`PeerManager::read_event`]
425-
/// requires that there be no parallel calls for a given peer, so mutual exclusion of messages
426-
/// handed to the `MessageHandler`s for a given peer is already guaranteed.
423+
/// Connection state for each connected peer - we have an outer read-write lock which is taken
424+
/// as read while we're doing processing for a peer and taken write when a peer is being added
425+
/// or removed.
426+
///
427+
/// The inner Peer lock is held for sending and receiving bytes, but note that we do *not* hold
428+
/// it while we're processing a message. This is fine as [`PeerManager::read_event`] requires
429+
/// that there be no parallel calls for a given peer, so mutual exclusion of messages handed to
430+
/// the `MessageHandler`s for a given peer is already guaranteed.
427431
peers: FairRwLock<HashMap<Descriptor, Mutex<Peer>>>,
428432
/// Only add to this set when noise completes.
429433
/// Locked *after* peers. When an item is removed, it must be removed with the `peers` write

0 commit comments

Comments
 (0)