@@ -1011,24 +1011,26 @@ after_frag( fd_shred_ctx_t * ctx,
1011
1011
ulong max_dest_cnt [1 ];
1012
1012
fd_shred_dest_idx_t * dests ;
1013
1013
if ( FD_LIKELY ( ctx -> in_kind [ in_idx ]== IN_KIND_NET ) ) {
1014
+ for ( ulong i = 0UL ; i < k ; i ++ ) {
1015
+ for ( ulong j = 0UL ; j < ctx -> adtl_dests_retransmit_cnt ; j ++ ) send_shred ( ctx , stem , new_shreds [ i ], ctx -> adtl_dests_retransmit + j , ctx -> tsorig );
1016
+ }
1014
1017
out_stride = k ;
1015
1018
/* In the case of feature activation, the fanout used below is
1016
1019
the same as the one calculated/modified previously at the
1017
- begining of after_frag() for IN_KIND_NET in this slot. */
1020
+ beginning of after_frag() for IN_KIND_NET in this slot. */
1018
1021
dests = fd_shred_dest_compute_children ( sdest , new_shreds , k , ctx -> scratchpad_dests , k , fanout , fanout , max_dest_cnt );
1019
1022
} else {
1020
- out_stride = 1UL ;
1021
- * max_dest_cnt = 1UL ;
1022
- dests = fd_shred_dest_compute_first ( sdest , new_shreds , k , ctx -> scratchpad_dests );
1023
1023
for ( ulong i = 0UL ; i < k ; i ++ ) {
1024
1024
for ( ulong j = 0UL ; j < ctx -> adtl_dests_leader_cnt ; j ++ ) send_shred ( ctx , stem , new_shreds [ i ], ctx -> adtl_dests_leader + j , ctx -> tsorig );
1025
1025
}
1026
+ out_stride = 1UL ;
1027
+ * max_dest_cnt = 1UL ;
1028
+ dests = fd_shred_dest_compute_first ( sdest , new_shreds , k , ctx -> scratchpad_dests );
1026
1029
}
1027
1030
if ( FD_UNLIKELY ( !dests ) ) return ;
1028
1031
1029
1032
/* Send only the ones we didn't receive. */
1030
1033
for ( ulong i = 0UL ; i < k ; i ++ ) {
1031
- for ( ulong j = 0UL ; j < ctx -> adtl_dests_retransmit_cnt ; j ++ ) send_shred ( ctx , stem , new_shreds [ i ], ctx -> adtl_dests_retransmit + j , ctx -> tsorig );
1032
1034
for ( ulong j = 0UL ; j < * max_dest_cnt ; j ++ ) send_shred ( ctx , stem , new_shreds [ i ], fd_shred_dest_idx_to_dest ( sdest , dests [ j * out_stride + i ]), ctx -> tsorig );
1033
1035
}
1034
1036
}
0 commit comments