1234567891011121314151617 |
- package contextx
- import (
- "context"
- "time"
- )
- func ShrinkDeadline(ctx context.Context, timeout time.Duration) (context.Context, func()) {
- if deadline, ok := ctx.Deadline(); ok {
- leftTime := time.Until(deadline)
- if leftTime < timeout {
- timeout = leftTime
- }
- }
- return context.WithDeadline(ctx, time.Now().Add(timeout))
- }
|