Два года в /fg/. Войти !bnw Сегодня Клубы
Забавно Если в Cygwin сделать `mkfifo azaza; cat azaza`, а запустить несколько `cat >azaza` и начать, как Джигурда, орать туда песни (опыт кстати показывает, что можно и не как Джигурда, эффект тот же), сразу во все, то, в отличие от нормального юникса, эти несколько потоков будут приходить в pipe по очереди. Т.е. сперва первый, пока не закончится, потом второй и т.д. Песни по несколько буков, явно меньше `PIPE_BUF`, который 4096. Копаться в мануалах по Виндам мне как-то влом, потому что вообще нафиг не надо (случайно заметил, но особо не парит). Но природа данного косяка интересна. Есть тут крутые виндузятники, которые быстро скажут, в чём дело?
Рекомендовали: @o01eg
#7HWD5I / @dluciv / 2491 день назад

Так разве в Cygwin используются виндовые Named Pipes? Cygwin ведь на то и Cygwin, что реализует всё по-своему, нет? И если так, то и винда к этому не относится вообще.
#7HWD5I/WOX / @anonymous / 2491 день назад
@anonymous А вот фиг знает. Ну что-то он использует же. Может и не относится...
#7HWD5I/FRM / @dluciv --> #7HWD5I/WOX / 2491 день назад
@dluciv Что-то я сначала полез в дебри кода реализации libc у Cygwin'а и ничего не понял. К слову наткнулся на то, что mkfifo нет у mingw, что как бы намекает, что даже mingw не реализует mkfifo через виндовое API. А потом сделал `mkfifo a` и посмотрел, что в винде это просто симлинк с комментарием ":\0:c4:11b6". Так что вангую, что это реализация Named Pipes находится внутри рантайма cygwin'а.
#7HWD5I/FGK / @anonymous --> #7HWD5I/FRM / 2491 день назад
@anonymous Ну ок. На самом деле через unix domain sockets всё бегает параллельно, как положено. Так что через socat объезжается за пару минут. Хотя и оверкилл конечно.
#7HWD5I/4E4 / @dluciv --> #7HWD5I/FGK / 2491 день назад
@dluciv Unix-сокетов, к слову, в винде тоже нет и я не знаю, через что они реализованы в Cygwin'е. Мне кажется, что через tcp-сокеты. И это объяснит, почему это работает нормально.
#7HWD5I/94G / @anonymous --> #7HWD5I/4E4 / 2491 день назад
@anonymous Скорее всего, т.к. socat начинает слушать TCP и UDP, когда его просишь слушать юниксовый сокет.
#7HWD5I/L4L / @dluciv --> #7HWD5I/94G / 2491 день назад
@anonymous А, ну собственно вот, да =)
#7HWD5I/3B9 / @dluciv --> #7HWD5I/FB6 / 2491 день назад
>2018 >Cygwin mfw
#7HWD5I/NL8 / @anonymous / 2491 день назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.