Skip to content

Commit 83b88f5

Browse files
authored
Merge pull request #1972 from ZcashFoundation/peer-set-demand-deadlock-doc
Document peer set deadlock resistance
1 parent 109ca4d commit 83b88f5

File tree

1 file changed

+6
-0
lines changed
  • zebra-network/src/peer_set

1 file changed

+6
-0
lines changed

zebra-network/src/peer_set/set.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,8 +462,14 @@ where
462462
self.update_metrics();
463463

464464
if self.preselected_p2c_index.is_none() {
465+
// CORRECTNESS
466+
//
467+
// If the channel is full, drop the demand signal rather than waiting.
468+
// If we waited here, the crawler could deadlock sending a request to
469+
// fetch more peers, because it also empties the channel.
465470
trace!("no ready services, sending demand signal");
466471
let _ = self.demand_signal.try_send(());
472+
467473
// CORRECTNESS
468474
//
469475
// The current task must be scheduled for wakeup every time we

0 commit comments

Comments
 (0)