Size: a a a

Rust — русскоговорящее сообществo

2020 October 17

D

Denis in Rust — русскоговорящее сообществo
что значит "такска отменяет себя сама"?
источник

D

Denis in Rust — русскоговорящее сообществo
читаю https://docs.rs/tokio/0.3.0/tokio/fn.spawn.html

> There is no guarantee that a spawned task will execute to completion. When a runtime is shutdown, all outstanding tasks are dropped, regardless of the lifecycle of that task.

о каких гарантиях идёт речь? мб я чего-то не понял, заранее извиняюсь
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Denis
читаю https://docs.rs/tokio/0.3.0/tokio/fn.spawn.html

> There is no guarantee that a spawned task will execute to completion. When a runtime is shutdown, all outstanding tasks are dropped, regardless of the lifecycle of that task.

о каких гарантиях идёт речь? мб я чего-то не понял, заранее извиняюсь
Отмена из-за остановки рантайма это очень специфический случай, примерно эквивалентный abort'у
источник

D

Denis in Rust — русскоговорящее сообществo
Mikail Bagishov
Отмена из-за остановки рантайма это очень специфический случай, примерно эквивалентный abort'у
это вообще не специфичный случай, это очень даже обычный случай
источник

D

Denis in Rust — русскоговорящее сообществo
пользователь нажал ctrl+c/systemctl stop
источник

D

Denis in Rust — русскоговорящее сообществo
рантайм когда-нибудь обязательно остановится, поэтому называть это специфичным случаем — ну такое..
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Denis
пользователь нажал ctrl+c/systemctl stop
Это один раз за всю жизнь процесса, и то не факт, потому что ctrl-c можно перехватить и изящно обработать, и systemctl stop тоже
источник

D

Denis in Rust — русскоговорящее сообществo
Mikail Bagishov
Это один раз за всю жизнь процесса, и то не факт, потому что ctrl-c можно перехватить и изящно обработать, и systemctl stop тоже
одного раза достаточно
источник

D

Denis in Rust — русскоговорящее сообществo
но речь не об этом, речь про гарантии, которых нет.. или есть, но я не там читаю? что за гарантии-то?
источник

D

Denis in Rust — русскоговорящее сообществo
сорри если звучит вызывающе, я не хочу ни в коем случае кого-то обидеть или что-то такое! просто надо разобраться
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Окей, переформулирую в терминах скорости утечки.
Если у нас утекают ресурсы из-за того, что упал физический сервак - то это одна скорость утечки (при должном мониторинге эта величина примерно нулевая, насколько я понимаю).
А если каждый раз, когда обработка запроса отменилась по таймауту - то совсем другая.
источник

D

Denis in Rust — русскоговорящее сообществo
ну начинается
источник

D

Denis in Rust — русскоговорящее сообществo
в общем надо быть готовым к тому, что твоя футура будет дропнута на середине
источник

D

Denis in Rust — русскоговорящее сообществo
обычно понимание этого факта достаточно, чтобы завернуть всё, что нужно, в RAII, и тогда всё становится хорошо
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Denis
обычно понимание этого факта достаточно, чтобы завернуть всё, что нужно, в RAII, и тогда всё становится хорошо
От того, что мы сейчас обсуждаем,   RAII не спасает
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Потому что насильное прекращение исполнения тасков в нормальной ситуации происходит при exit/abort/kill/падении хоста, а деструкторы при этом не вызываются
источник

E

Eugene in Rust — русскоговорящее сообществo
Denis
обычно понимание этого факта достаточно, чтобы завернуть всё, что нужно, в RAII, и тогда всё становится хорошо
а можно примеры того, что достаточно завернуть в RAII?
источник

D

Denis in Rust — русскоговорящее сообществo
Eugene
а можно примеры того, что достаточно завернуть в RAII?
нет
источник

E

Eugene in Rust — русскоговорящее сообществo
Denis
нет
почему?
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Eugene
а можно примеры того, что достаточно завернуть в RAII?
Ну например, Sender::send в mpsc-канале хороший пример имхо.
источник