case <-ctx.Done():
if old := chanw.Load(); old == -1 {
return
- } else if now := time.Now(); old > 0 && now.Unix()-old >= int64(to.Seconds()) {
+ } else if now := time.Now(); old > 0 && now.Unix()-old > int64(to.Seconds()) {
if old != 0 {
panicf[0](fmt.Sprintf("rw blocking while close %vs > %v, goruntime leak \n%v", now.Unix()-old, to, callTree))
}
time.AfterFunc(to, func() {
if old := chanw.Load(); old == -1 {
return
- } else if now := time.Now(); old > 0 && now.Unix()-old >= int64(to.Seconds()) {
+ } else if now := time.Now(); old > 0 && now.Unix()-old > int64(to.Seconds()) {
panicf[0](fmt.Sprintf("rw blocking after close %vs > %v, goruntime leak \n%v", now.Unix()-old, to, callTree))
}
})