nf/nft/tool/ctx.go

35 lines
670 B
Go
Raw Permalink Normal View History

2024-12-26 19:40:39 +08:00
package tool
import (
"context"
"time"
)
func Timeout(seconds ...int) (ctx context.Context) {
var duration time.Duration
if len(seconds) > 0 && seconds[0] > 0 {
duration = time.Duration(seconds[0]) * time.Second
} else {
duration = time.Duration(30) * time.Second
}
ctx, _ = context.WithTimeout(context.Background(), duration)
return
}
func TimeoutCtx(ctx context.Context, seconds ...int) context.Context {
var duration time.Duration
if len(seconds) > 0 && seconds[0] > 0 {
duration = time.Duration(seconds[0]) * time.Second
} else {
duration = time.Duration(30) * time.Second
}
nctx, _ := context.WithTimeout(ctx, duration)
return nctx
}