@@ -1074,7 +1074,7 @@ func (w *worker) commitWork(interrupt *atomic.Int32, timestamp int64) {
1074
1074
case err == nil :
1075
1075
// The entire block is filled, decrease resubmit interval in case
1076
1076
// of current interval is larger than the user-specified one.
1077
- w .resubmitAdjustCh <- & intervalAdjust {inc : false }
1077
+ w .adjustResubmitInterval ( & intervalAdjust {inc : false })
1078
1078
1079
1079
case errors .Is (err , errBlockInterruptedByRecommit ):
1080
1080
// Notify resubmit loop to increase resubmitting interval if the
@@ -1084,10 +1084,10 @@ func (w *worker) commitWork(interrupt *atomic.Int32, timestamp int64) {
1084
1084
if ratio < 0.1 {
1085
1085
ratio = 0.1
1086
1086
}
1087
- w .resubmitAdjustCh <- & intervalAdjust {
1087
+ w .adjustResubmitInterval ( & intervalAdjust {
1088
1088
ratio : ratio ,
1089
1089
inc : true ,
1090
- }
1090
+ })
1091
1091
1092
1092
case errors .Is (err , errBlockInterruptedByNewHead ):
1093
1093
// If the block building is interrupted by newhead event, discard it
@@ -1169,6 +1169,15 @@ func (w *worker) isTTDReached(header *types.Header) bool {
1169
1169
return td != nil && ttd != nil && td .Cmp (ttd ) >= 0
1170
1170
}
1171
1171
1172
+ // adjustResubmitInterval adjusts the resubmit interval.
1173
+ func (w * worker ) adjustResubmitInterval (message * intervalAdjust ) {
1174
+ select {
1175
+ case w .resubmitAdjustCh <- message :
1176
+ default :
1177
+ log .Warn ("the resubmitAdjustCh is full, discard the message" )
1178
+ }
1179
+ }
1180
+
1172
1181
// copyReceipts makes a deep copy of the given receipts.
1173
1182
func copyReceipts (receipts []* types.Receipt ) []* types.Receipt {
1174
1183
result := make ([]* types.Receipt , len (receipts ))
0 commit comments