Dk
А какие среды разработки для Go популярны? Я пользовался sublime-text. Что в него поставить дополнительно?
Aleksandr
Kirill
Anonymous
Olzhas
Aleksandr
...не юзайте goland
да-да
слушай, умерь свой пыл в споре о вкусах. Вопрос был про популярные среды. Самые 2 популярные в этом чате среды я назвал. Не нравится Goland, не юзай.
Kirill
Olzhas
Kirill
и так было понятно, что это шутка
Olzhas
ну а кроме этого
Olzhas
какие еще аргументы?
Dk
Спасибо
Kirill
да о чем речь?) нравится goland — юзай %)
Kirill
я на vscode сижу, бесплатно и доволен им
Vadim
Просто тупо больше возможностей
Kirill
я сначала на atom перешел, потом на вскод
Olzhas
Olzhas
халявная лицензия
Kirill
Kirill
#оговорочкапофрейду
Kirill
заработался уже
Olzhas
Anonymous
Вы точно видели последнюю версию?
Anonymous
Kirill
сильно уж жирное название %)
Kirill
Шутка о банхаммере
Denis
/voteban
Denis
/voteban
Kirill
Daniel
в виде file handler
Kirill
то есть — в виде id
Daniel
это не совсем так
Daniel
fd - это не id
Daniel
вернее - это не глобальный id
Kirill
я знаю, что не глобальный
Kirill
но это id
Kirill
понятно, что это не должен быть GUID
Kirill
почему ты так завязался на unix сокеты для передачи id?
Daniel
потому, что это стандартный способ передачи fd
Kirill
стандартный, но в го не всегда работает хорошо то, что "стандартное"
Daniel
а при чем тут go
Kirill
подумай об альтернативных способах
Daniel
это стандартно для IPC
Kirill
а при чем тут go
а что, ты это не на го делаешь? что значит "при чем"?
Daniel
один из воркеров не на go, кстати
Daniel
и скорее всего не умеет принимать хендлеры иначе
Kirill
скорее всего?
Daniel
но даже если на go - IPC от языка не зависит
Daniel
но ты не томи :)
Daniel
как, по-твоему, можно еще паснуть файлхендлер другому процессу?
Daniel
номер-то у хендлера уникальный только в рамках одного процесса
Лосось
Если кто начала работать со стримами, вот пример
Kirill
просто "без sendmsg" чтобы отправить нужно "всего лишь" заменить пару сотен сяшного кода, которым этот sendmsg обрабатывается
Kirill
TWIMC 2
история про закрывающийся listen сокет оказалась и сложнее, и проще
unix-сокеты были там у меня для отправки по ним tcp-соединений воркерам.
соответственно - делал я их не через net.Dial, а через unix.Socket, и отправлял через unix.Sendmsg
как паснуть именно хендлер соединения без unix.Sendmsg - я не знаю.
так вот - потом я делал unix-сокету syscall.Close, естественно
мистическим образом иногда (!) хендлер unix-сокета оказывался равен хендлеру listen-сокета.
и listener закрывался, понятное дело.
что с этим делать? у net.UnixConn появился сравнительно недавно метод SyscallConn, возвращающий syscall.RawConn, у которого, в свою очередь, есть Write(), позволяющий получить доступ к file descriptor.
и этот fd можно использовать для вызова unix.Sendmsg, да...
алсо, 🤔 а обязательно ли постоянно юзать новый сокет?
Kirill
Daniel
Kirill
Kirill
Dmitry
проблема шаринга сетевого сокета между процессами видно. насколько я понял
Kirill
Stanislav
проблема в том что при отправке из-за каких-то проблем либо при работе с сырыми дескрипторами в го, либо в рантайме, либо даже в ядре (маловероятно) с какой-то вероятностью в fd оказывается совершенно левый номер другого сокета
Kirill
сама проблема в чем заключается?
Kirill
как-то вы синхронно ответили дополняющие друг друга вещи. вы из одной конторы, что ли? :D
Stanislav
я подозреваю потому что закрывали fd, оставляя живым os.File, который в finalizer ещё творит магии с поллером
Stanislav
есть немного