170 похожих чатов

Func (c *Controller) ContainerWait(containerID string, timeLimit time.Duration) (state int64, err

error) {
ctx, cancel := context.WithTimeout(context.Background(), timeLimit*time.Second)
defer cancel()

resultC, errC := c.cli.ContainerWait(ctx, containerID, "")
select {
case err := <-errC:
return 0, err
case result := <-resultC:
return result.StatusCode, nil
}
}

Вот такая функция. В теории должна прерывать ContainerWait спустя timeLimit*time.Second, но этого не происходит. ЧЯДНТ? Ощущение, что я чего-то не понимаю в использовании context.

5 ответов

3 просмотра

чтобы контекст что-то “прервал” - надо регулярно пытаться читать из его канала, и, когда прочтется, завершаться

synalice- Автор вопроса
Daniel Podolsky
чтобы контекст что-то “прервал” - надо регулярно п...

В доке WithTimeout есть вот такой пример: func main() { ctx, cancel := context.WithTimeout(context.Background(), 3 * time.Second) defer cancel() select { case <-time.After(1 * time.Second): fmt.Println("overslept") case <-ctx.Done(): fmt.Println(ctx.Err()) // prints "context deadline exceeded" } } ...но я его напрочь не понимаю. Что здесь происходит?

synalice
В доке WithTimeout есть вот такой пример: func ma...

здесь мы читаем из двух каналов, какой быстрее прочтется - тот и выиграл

Похожие вопросы

Обсуждают сегодня

Вместо import и library придется писать importlib?
The Bird of Hermes
19
А кто-нибудь запихивал сборку перловых модулей/образов с perl приложениями в окружения без интернета (в специализированном CI/CD)? У меня сейчас есть ряд cpanfile, которые н...
Andrey Smirnov / 𝓪𝓵𝓵𝓽𝓮𝓻 /
12
а как с таким борятся ? про термин стак тут мне пока не попадалось ghci> foldr (\(CotMD n ctM _) (mstep,pos) -> if ctM > mstep then (ctM, n) else (mstep, pos)) (0,0) $ take ...
Fedor
13
вот вопрос, вот про это type Events = [String] type Probs = [Double] у курта есть задание Если бы ваши типы Events и Probs были самостоятель­ ными типами данных, а не просто...
Fedor
8
вот что получается в интерпрететоре, работает и результаты выгляд разумными, но то как выглядит код мне не нравиться, а понять куда двигаться не очень могу, если кому не лень ...
Fedor
42
А ещё docker можно к ассемблеру прикрутить. В целом, системы сборки это настолько несвязанная вещь... Это оффтоп, можно сказать, во всех чатах. Это просто проект, который помо...
КТ315
22
получается, что он находит одинаковое колво тегов, с разными именами, или я что тто не понял в таксоупе ?
Fedor
46
сурсы: import std/asyncdispatch, std/httpclient, std/json, std/sequtils, std/strutils, std/unicode, std/unidecode, std/uri, uuid4, regex const GPT4_API...
Qtless Qtless
4
Раз пошла тема про XML... Delphi XE 10.4.2(но это не важно), XML Data Binding Несколько XSD. В основном содержатся include на расширения. Несколько Namespace, это важно. Бин...
Alexey Gavrilov
4
вот еще вопрос ошибка app/Main.hs:135:13: error: [GHC-83865] • Couldn't match type: MoveInfo -> Coords with: (Int, Int) Expected: Coords ...
Fedor
21
Карта сайта