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():
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"))
case context.DeadlineExceeded:
metrics.SendTimeout(ctx, d)
panic(ierrors.New(503, fmt.Sprintf("Timeout after %v", d), "Timeout"))
default:
panic(err)
}
metrics.SendTimeout(ctx, d)
panic(ierrors.New(503, fmt.Sprintf("Timeout after %v", d), "Timeout"))
default:
// Go ahead
}