Size: a a a

2021 April 30

c

codingteam@cjr in codingteam
sergevp
Ну, там есть фикс. :) Но тест забавный. Я его в wandbox засунул: https://wandbox.org/permlink/d18rlX8nJ7C6K3nY и он мне вместо 10 SIGCHLD-ов выдал 17 штук... Интересно, почему?
источник

c

codingteam@cjr in codingteam
Minoru
ой, нет сил сейчас над этим думать
источник

c

codingteam@cjr in codingteam
Minoru
я тут пытаюсь весь Newsboat перевести на самодельный строковый тип, гарантирующий, что строки в UTF-8 >_<
источник

c

codingteam@cjr in codingteam
sergevp
Кстати!
источник

c

codingteam@cjr in codingteam
sergevp
Minoru>на данный момент всё говно — не-говна нет, потому что нет нормального интерфейса взамен getenv/setenv [...]
@ttldtor> хочешь занести что-то в POSIX? Стань Intel, например

Ну, зачем же так сурово. :) Можно в своей программе локально определить свои getenv и setenv, которые работают с thread-local env. Для вызова библиотеки этого должно хватить.
источник

c

codingteam@cjr in codingteam
Minoru
а как заставить библиотеку ими пользоваться?
источник

c

codingteam@cjr in codingteam
Minoru
или ты имеешь в виду, что моё приложение будет работать со своей собственной копией окружения и, таким образом, будет защищено от библиотеки?
источник

c

codingteam@cjr in codingteam
sergevp
А есть ли у библиотеки шанс ими не воспользоваться? В смысле, сработает же тот же механизм, что в LD_PRELOAD перехватывает функции.
источник

c

codingteam@cjr in codingteam
Minoru
а, ты про такое переопределение
источник

c

codingteam@cjr in codingteam
sergevp
Я имею ввиду, если в моей программе будут экспортированы функции с именами getenv() и setenv()
источник

c

codingteam@cjr in codingteam
sergevp
Но, наверное, так можно делать только в конечной "программе". В библиотеках, пожалуй, этого лучше не делать. :)
источник

💮

💮 in codingteam
В бесконечной программе.
источник

O

Omap in codingteam
сигнал-то прошёл
источник

t

ttldtor in codingteam
А ты крут!
источник
2021 May 01

c

codingteam@cjr in codingteam
sergevp
sergevp> Но тест забавный. Я его в wandbox засунул: https://wandbox.org/permlink/d18rlX8nJ7C6K3nY и он мне вместо 10 SIGCHLD-ов выдал 17 штук... Интересно, почему?

Пока думаю, что дело в printf()-е внутри обработчика сигнала. Если делать через sem_post(), то больше 10 не бывает : https://wandbox.org/permlink/Jplvzbr2n4tnKZHT
источник

FO

FORTRAN ONE LOVE in codingteam
Утро v0.1.0-20210501!
источник

Dv

Dr. Friedrich von Ne... in codingteam
А я такое тоже видал. Но не очень напугался, если честно.

А в том случае про Винду я всё ещё считаю, что авторы библиотеки наоверинженерили чего-то.
источник

Dv

Dr. Friedrich von Ne... in codingteam
Погодь, разве в этом проблема? К слову, в Винде SetDllDirectory внезапно имеет нелокальные эффекты, вот это WTF так WTF.
источник

Dv

Dr. Friedrich von Ne... in codingteam
Сорян, это не сработает для врапперов вокруг сишных либ. Плюс, это реально получается конвенция, нарушителей которой очень сложно поймать (потому что отваливается раз в год при каких-то невообразимых условиях), а в самом плохом случае её соблюдение вырождается в однопоточный GIL.
источник

Dv

Dr. Friedrich von Ne... in codingteam
К слову, в дотнете так и сделали. И это довольно ебово :(

Чтобы дёрнуть setenv на Линуксе, приходится самому писать интероп в libc.

И при этом поведение SetEnvironmentVariable стало платформозависимым. Беда.
источник