heavycharged
нажмите run
ну понятное дело что работает, у автора на машине другое поведение
🏁Александр
вот именно ПОЭТОМУ просят всегда давать примеры на play
🏁Александр
телепаты в отпуске
heavycharged
иногда это невозможно
🏁Александр
дайте рабочий-не рабочий пример
Wingman
чтоб прям рабочий, надо пол-проекта как-то на плей выгрузить
🏁Александр
logger.debug это чье?
Wingman
моё оно делает ровно то же самое, что printf
heavycharged
сделайте copied := make([]byte, len(b)) copy(copied, b) и потом засуньте вашу копию в логгер
Wingman
дайте рабочий-не рабочий пример
https://play.golang.org/p/-Yy1IIJ-Kxo но оно не будет работать, конечно
heavycharged
у вас внутри for пауза есть какая-то?
Wingman
нет
heavycharged
пока я вижу что вы рожаете горутины, без контрольно
heavycharged
какая-то горутниа может подвиснуть
Wingman
разве делая bytes := readBuf[:n] - я не копировал значение?
Anton
гхм, ну передал slice по значению, а underlying array то меняется, не?
heavycharged
ваш readBuf[:n] возвращает не массив, а слайс, слайс указывает на лежащий под ним массив, т.е. в каждой горутине у вас лежит один и тот же слайс
Maksim (Ellrion)
слайс это ссылка
heavycharged
copy(bytes, readBuf[:n])
Wingman
блин, осознал
Wingman
спасибо огромное!
Wingman
copy(bytes, readBuf[:n])
угу, так и сделал
Anton
поэтому таки да, лучше код всегда на плейграунд. и дело может быть не в одной строчке кода.. а совершенно в другой 😉
🏁Александр
я кстати предложил бы сделать приватный плейграуд
🏁Александр
по инвайтам, с разрешенным импортами
🏁Александр
без обрезанных стандартных либ
Oleh
Может кто то подсказать как сделать так что бы функция случайно, но только в 30% возвращала True?
Slava
лучше 1 - 100 и до 30 true
Oleh
спасибо)
.
лучше 1 - 100 и до 30 true
Да, так действительно лучше 🤔
heavycharged
Есть ли смысл ловить SIGKILL?
heavycharged
в каких случаях? разве программа успеет что-то сделать по sigkill?
Dmitry
Да, вы правы. Видел использование sigkill вот здесь https://github.com/asticode/go-astilectron-bundler/search?utf8=✓&q=sigkill&type= Сейчас почитал по подробнее, реально сигнал не ловится.
heavycharged
я вот даже пока вы отвечали погуглил, и там есть предложения чтобы go vet указывал на такие моменты.
heavycharged
что-то не могу сообразить, сделал свой http.Handler, сделал метод ServeHTTP(w, r), в самом начале метода беру из пула контекст, передаю в c.handler(ctx), и в самом низу делаю storeContext(c.ctx), под нагрузкой начинается data race, видимо из-за того, что storeContext происходит в конце ServeHTTP, но не после выхода из него, какая-то горутина уже получает этот же контекст из пула. Как бы обыграть это дело.
heavycharged
defer func() { storeContext(ctx) } () тоже приводит к data race
Slava
А зачем контекст из пула?
heavycharged
там JSON структура, и много всяких ништяков, которые из ряда в ряд повторяются (JSON API ответ, всякие версии, мета-информация и прочее)
heavycharged
Ну ещё у контекста методы есть удобные, вроде JSON/UnmarshalJSON.
Slava
то гошный контекст или какой-то другой контекст?
Aleksey
Чятик, я что-то слышал про то, что в го планируется привязка импортов к конкретным коммитам. Это правда или мне приснилось?
Aleksandr
возможно ты про vgo
Grigoriy
Всем привет! Кто не боится кода новичков-самоучек - посмотрите, пожалуйста, https://play.golang.org/p/Bb5hdHfXrH7 и подскажите, где я недочитал и недопонял.
Nik
SomeMap:=make(map[string]int)
Nik
Для начала
Nik
Вынул структуру из мапы
Nik
Изменил
Nik
А обратно в мапу не упаковал
Grigoriy
О, оно! Теперь всё получилось. Спасибо!
Nik
https://play.golang.org/p/n-TOziMjj9a
Grigoriy
https://play.golang.org/p/n-TOziMjj9a
Кажется, понял. Спасибо! Но тогда еще вопрос - для простоты примера в мапе int, а планируется намаленький sync.Map. По такому принципу получится, что вынуть-изменить-всунуть обратно повлечет большие расходы и сам путь не самый изящный? Думать другие варианты?
Anonymous
Зависит от величины отношения чтений по отношению к записям
Anonymous
Может отдельно работающий обработчик с каналом может оказаться быстрее
Anonymous
2 тафталогии в сообщении
Anonymous
Сильно 😂
Grigoriy
Может отдельно работающий обработчик с каналом может оказаться быстрее
Так и поступлю. Сначала посмотрю на тесты скорости, а потом попробую с каналом. Спасибо!
Илья
у кого-нибудь осталась ссылка назадание, вчерашний highload-cup с гоферкона?
Vasily
https://go2018.highloadcup.ru/static/core/files/mailru_gophercon_2018.zip вот даже так
freezlite
https://habrahabr.ru/post/150041/ чем N нарная ассоциация от агрегации отличается?
Aleksandr
https://habrahabr.ru/post/150041/ чем N нарная ассоциация от агрегации отличается?
в первом случае это ассоциация чего-либо с чем-то, во втором случае это вхождение во что-то.
Aleksandr
семантика
freezlite
что?
Aleksandr
что?
Aleksey
что?
Илья
<sarcasm> а с шейдерами под мобильники поможете? </sarcasm>
Grigoriy
Делайте map[string]*tStruct чтобы менять значение поля в мапе без переназначения
Тоже таким способом удалось добиться результата и понять. Спасибо!
Artem
Всем привет. Кто может подсказать, почему когда делаю client.Do(), если таймаут превышает, то при выводе err ничего не выводится?
Artem
При этом вижу такое net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
Artem
Как обработать этот таймаут?
Slava
а где видишь?