code: func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) {
  	return WithDeadline(parent, time.Now().Add(timeout))
  }
docs: // WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)).
  //
  // Canceling this context releases resources associated with it, so code should
  // call cancel as soon as the operations running in this Context complete:
  //
  // 	func slowOperationWithTimeout(ctx context.Context) (Result, error) {
  // 		ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond)
  // 		defer cancel()  // releases resources if slowOperation completes before timeout elapses
  // 		return slowOperation(ctx)
  // 	}