@@ -40,13 +40,13 @@ fn main() {
4040
4141 for round in 1 ..=N_ROUNDS {
4242 // Each worker advances its own progress by a random increment.
43- for i in 0 .. N_WORKERS {
43+ for frontier in frontiers . iter_mut ( ) {
4444 let advance = rng. next ( ) % 12 + 1 ; // 1..=12
45- let current = * frontiers [ i ]
45+ let current = * frontier
4646 . elements ( )
4747 . first ( )
4848 . expect ( "frontier is non-empty" ) ;
49- frontiers [ i ] = Frontier :: from_elem ( current + advance) ;
49+ * frontier = Frontier :: from_elem ( current + advance) ;
5050 }
5151
5252 // Gossip phase: each worker picks a random peer; 30% of messages are dropped.
@@ -92,11 +92,10 @@ fn main() {
9292 // a final unconditional all-to-all gossip round.
9393 println ! ( "\n --- Final all-to-all gossip (convergence check) ---" ) ;
9494 let snapshot: Vec < Frontier < u64 > > = frontiers. clone ( ) ;
95- for i in 0 .. N_WORKERS {
96- for j in 0 .. N_WORKERS {
95+ for ( i , frontier ) in frontiers . iter_mut ( ) . enumerate ( ) {
96+ for ( j , peer ) in snapshot . iter ( ) . enumerate ( ) {
9797 if i != j {
98- let peer = snapshot[ j] . clone ( ) ;
99- frontiers[ i] = frontiers[ i] . meet ( & peer) ;
98+ * frontier = frontier. meet ( peer) ;
10099 }
101100 }
102101 }
0 commit comments