Size: a a a

2021 April 30

t

ttldtor in codingteam
и такой же набор функций по работе с ситемным временем
источник

t

ttldtor in codingteam
и локалями
источник

t

ttldtor in codingteam
и файлами
источник

t

ttldtor in codingteam
хотя не, файлам не надо. их локать можно
источник

c

codingteam@cjr in codingteam
Minoru
кстати, я тут делаю ревью для cargo crev, читаю в том числе кромплатформенные крейты и всё больше убеждаюсь, что никсы не так уж прекрасны, а винда не так уж страшна. Помните, я показывал код для *гарантированного* удаления папки, содержащей подпапки? В *nix это просто рекурсивное удаление, а в Windows удаление асинхронное и поэтому приходится извращаться? Ну так вот, вчера нашёл обратную сторону медали — крейт wait-timeout, ждущий завершение дочернего процесса или окончания таймаута
источник

c

codingteam@cjr in codingteam
m4n71k0r
ха!
источник

c

codingteam@cjr in codingteam
Minoru
в винде это один вызов, в линуксе — портянка на несколько экранов с установкой обработчика SIGCHLD, self-pipe trick для доставки уведомления и ещё какой-то магией
источник

c

codingteam@cjr in codingteam
Minoru
можете вот здесь сравнить windows.rs и unix.rs: https://github.com/alexcrichton/wait-timeout/tree/master/src
источник

D

Devel29A in codingteam
источник

t

ttldtor in codingteam
просто в винде функции по работе с переменными окружения работают локально на процесс, а вот такого в посиксе я не вижу комментария https://man7.org/linux/man-pages/man3/setenv.3.html
источник

c

codingteam@cjr in codingteam
Minoru
> <@niksaak> Имхо не очень правильно говорить что геттекст-рс ансаунд из за этого.

а по-моему норм. Либка обещает безопасный интерфейс, а тут оказывается, что его можно сломать одним метким вызовом setenv. Другое дело, что чинить это действительно никто не будет =\
источник

t

ttldtor in codingteam
то есть, в винде для процесса берётся копия переменнных окружения или предварительно готовятся
источник

t

ttldtor in codingteam
а в посиксе как?
источник

D

Devel29A in codingteam
также
источник

t

ttldtor in codingteam
ну и в винде две функции всего
источник

c

codingteam@cjr in codingteam
Minoru
в посиксе так же, но проблема не в этом
источник

t

ttldtor in codingteam
никаких гонок не должно быть. Ты можешь сам сделать "владельца" и работать с ним
источник

c

codingteam@cjr in codingteam
Minoru
проблема в том, что getenv возвращает указатель на область с переменными, а setenv эту область меняет
источник

t

ttldtor in codingteam
у таких херовин должен быть "владелец"
источник

t

ttldtor in codingteam
который разрулит всё
источник