@@ -1052,24 +1052,26 @@ after_frag( fd_shred_ctx_t * ctx,
1052
1052
ulong max_dest_cnt [1 ];
1053
1053
fd_shred_dest_idx_t * dests ;
1054
1054
if ( FD_LIKELY ( ctx -> in_kind [ in_idx ]== IN_KIND_NET ) ) {
1055
+ for ( ulong i = 0UL ; i < k ; i ++ ) {
1056
+ 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 );
1057
+ }
1055
1058
out_stride = k ;
1056
1059
/* In the case of feature activation, the fanout used below is
1057
1060
the same as the one calculated/modified previously at the
1058
- begining of after_frag() for IN_KIND_NET in this slot. */
1061
+ beginning of after_frag() for IN_KIND_NET in this slot. */
1059
1062
dests = fd_shred_dest_compute_children ( sdest , new_shreds , k , ctx -> scratchpad_dests , k , fanout , fanout , max_dest_cnt );
1060
1063
} else {
1061
- out_stride = 1UL ;
1062
- * max_dest_cnt = 1UL ;
1063
- dests = fd_shred_dest_compute_first ( sdest , new_shreds , k , ctx -> scratchpad_dests );
1064
1064
for ( ulong i = 0UL ; i < k ; i ++ ) {
1065
1065
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 );
1066
1066
}
1067
+ out_stride = 1UL ;
1068
+ * max_dest_cnt = 1UL ;
1069
+ dests = fd_shred_dest_compute_first ( sdest , new_shreds , k , ctx -> scratchpad_dests );
1067
1070
}
1068
1071
if ( FD_UNLIKELY ( !dests ) ) return ;
1069
1072
1070
1073
/* Send only the ones we didn't receive. */
1071
1074
for ( ulong i = 0UL ; i < k ; i ++ ) {
1072
- 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 );
1073
1075
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 );
1074
1076
}
1075
1077
}
0 commit comments