File tree Expand file tree Collapse file tree 1 file changed +12
-2
lines changed Expand file tree Collapse file tree 1 file changed +12
-2
lines changed Original file line number Diff line number Diff line change @@ -207,7 +207,7 @@ func (de *IdleCounter) Done() {
207
207
208
208
de .job --
209
209
if de .job == 0 {
210
- de .tmr . Reset (de .duration )
210
+ de .reset (de .duration )
211
211
}
212
212
if de .job < 0 {
213
213
panic ("all jobs are already done" )
@@ -218,7 +218,7 @@ func (de *IdleCounter) Done() {
218
218
func (de * IdleCounter ) Wait (ctx context.Context ) {
219
219
de .lock .Lock ()
220
220
if de .job == 0 {
221
- de .tmr . Reset (de .duration )
221
+ de .reset (de .duration )
222
222
}
223
223
de .lock .Unlock ()
224
224
@@ -229,6 +229,16 @@ func (de *IdleCounter) Wait(ctx context.Context) {
229
229
}
230
230
}
231
231
232
+ func (de * IdleCounter ) reset (d time.Duration ) {
233
+ if ! de .tmr .Stop () {
234
+ select {
235
+ case <- de .tmr .C :
236
+ default :
237
+ }
238
+ }
239
+ de .tmr .Reset (d )
240
+ }
241
+
232
242
var chPause = make (chan struct {})
233
243
234
244
// Pause the goroutine forever.
You can’t perform that action at this time.
0 commit comments