Better timeout/cancel detection

This commit is contained in:
DarthSim
2022-07-19 18:10:18 +06:00
parent 9c920bc893
commit e41fd85894

View File

@@ -32,13 +32,16 @@ func CheckTimeout(ctx context.Context) {
case <-ctx.Done(): case <-ctx.Done():
d := ctxTime(ctx) d := ctxTime(ctx)
if ctx.Err() != context.DeadlineExceeded { err := ctx.Err()
switch err {
case context.Canceled:
panic(ierrors.New(499, fmt.Sprintf("Request was cancelled after %v", d), "Cancelled")) panic(ierrors.New(499, fmt.Sprintf("Request was cancelled after %v", d), "Cancelled"))
} case context.DeadlineExceeded:
metrics.SendTimeout(ctx, d) metrics.SendTimeout(ctx, d)
panic(ierrors.New(503, fmt.Sprintf("Timeout after %v", d), "Timeout")) panic(ierrors.New(503, fmt.Sprintf("Timeout after %v", d), "Timeout"))
default:
panic(err)
}
default: default:
// Go ahead // Go ahead
} }