Size: a a a

2021 June 04

DP

Daniel Podolsky in Go-go!
в каждой, конечно
источник

VY

Vladislav Yarmak in Go-go!
ну или в тех функциях, которые func1 и func2 вызывают с передачей контекста. так обычно и бывает
источник

АФ

Александр Феногентов... in Go-go!
если запустить cancelFunc например в func3 , то убьются все или только нижестоящие?
источник

VY

Vladislav Yarmak in Go-go!
важно понимать, что context.Context - не какая-то специальная языковая конструкция, а просто структура-надстройка, которая может просигнализировать отмену контекста
источник

VY

Vladislav Yarmak in Go-go!
поэтому поведение контекста не зависит от того, откуда он был отменён
источник

АФ

Александр Феногентов... in Go-go!
т.е. в каждой func должна быть обработка Done которой я должен самостоятельно убить/обработать завершение func?
А если я этого не делаю, то func просто "теряется"?
источник

с

сонная википедия... in Go-go!
где теряется
источник

с

сонная википедия... in Go-go!
контекст это просто канал
источник

DP

Daniel Podolsky in Go-go!
функция в любом случае продолжает работать, пока не завершится

вы можете слушать канал done и завершаться, а можете нет

другие варианты отсутствуют
источник

VY

Vladislav Yarmak in Go-go!
обычно самому слушать канал done нужно только если вы реализовываете какие-то примитивы, зависящие от контекста. на практике обычно контекст просто передаётся другим операциям, зависящим от контекста и они вернут ошибку, если в процессе контекст завершился. эта ошибка, как правило, и ведёт к логическому завершению вызывающей функции
источник

DP

Daniel Podolsky in Go-go!
в общем, да
источник

VY

Vladislav Yarmak in Go-go!
то есть такого что везде понатыканы select ... case <-ctx.Done() нет
источник

с

сонная википедия... in Go-go!
есть, если вы реализуете банальный пайплайн или работу по тикеру/таймеру
источник

АФ

Александр Феногентов... in Go-go!
есть цепочка func каждая запускается в своей горутинке
источник

АФ

Александр Феногентов... in Go-go!
и в них во всех не надо убивать отслеживая done?
источник

DP

Daniel Podolsky in Go-go!
это, скорее всего, неправильный дизайн
источник

VY

Vladislav Yarmak in Go-go!
Context это не про убивать, Context это про "обозначить неактуальность"
источник

DP

Daniel Podolsky in Go-go!
функция, запущенная в горутине, ни к какой цепочке не принадлежит
источник

АФ

Александр Феногентов... in Go-go!
я просто не до конца понимаю как работать с контекстом и пытаюсь придумать примеры
источник

ВС

Владимир Столяров... in Go-go!
Ну как, в exec он прямо так и работает (при отмене пуляет sigkill)
источник