Zver
Zver
Andrey
Daniel
Daniel
практически - не надо это выяснять. хотите атомарно подменять указатель - используйте atomic
Andrey
теоретически - да
я слышал, что ось защищает от такого. но моих знаний не хватает, чтобы нагуглить как это внутри устроено.
Andrey
Maxim
Он не хочет атомарно)
heavycharged
подменить поинтер это вообще атомарная операция, каков смысл на ней экономить?
heavycharged
Andrey
heavycharged
я бы мог дать вам ссылку, но вы сильно язвите, поэтому не буду
Andrey
Vladimir
Vladimir
То есть на x86 на разных ЦПУ может вести себя по разному
Vladimir
И кстати очень интересный вопрос не подберёт ли Гц структуру в первом случае прямо в процессе работы
Zver
Andrey
Andrey
Vladimir
Vladimir
Когда Гц прошел и получил видение как тред1
Vladimir
А тред2 из кэша цпу получил старый указатель после уже mark фазы гц
Vladimir
@VesninAndrey одна из проблем атомарности операций что неатомарный store не гарантирует инвалидацию кэша соседних ядер или цпу
Vladimir
Поэтому теоретически может быть ситуация когда в кэше старый указатель
Vladimir
И его получит тред после того как гц прибрал к рукам данные или закончил фазу mark
Andrey
а, я понял
Vladimir
Хотя я не очень уверен
Andrey
Т.е. не было живых горутин, гц пометил указатель, и тут новая горутина получает этот указатель из кеша и кровь кишки паника
Andrey
прикольно
Vladimir
Andrey
Огромное спасибо за дискуссию! Очень познавательно
Anonymous
А может кто-нибудь объяснить мне, тупому, зачем нужно измерять рэйсы (go run —race main.go) и почему плохо, когда находятся эти самые рэйсы?
Andrey
Andrey
Первые 5 минут - ответ на ваш вопрос
Vladimir
Vladimir
Рейсы плохи тем что у тебя после них неопределенное состояние структур данных которые читались или писались одновременно
Aleksandr
https://github.com/martingallagher/runes/blob/master/tables.go#L34
коллеги, а вот это на стадии компиляции высчитывается?
Oleh
нет
Oleh
init запускается при старте програмы
Aleksandr
вот и я думаю - странная оптимизация
Aleksandr
даже больше. валидных 150т
Vladimir
Vladimir
Зато потом будут флаги по которым в теории быстрее выборка
Vladimir
Но не факт
Slava
Нормальный звук! http://golangshow.com/episode/2018/02-27-119b/
Vladimir
Максим
Yegor
Vladimir
Aleksandr
ну да, но сомнительно. лучше скрипт для апдейта прикладывать
Vladimir
Vladimir
Чем лучше?
Aleksandr
не нагружаешь рантайм ненужными вычислениями
Aleksandr
перегенерить надо раз в год
Vladimir
Vladimir
Что не так страшно
Антон
Всем ку. Подскажите какое нибудь хорошее руководство по созданию менеджера сессий? а то я читаю одно, но не все понятно, откуда что берется...
Nik
Nik
Чьи сессии хотя бы
Антон
для веб приложения, что бы подойти к организации авторизации, я так понимаю, нужно понять как работает сессия и сделать менеджер сесии
Kirill
всем привет, только вкатываюсь в го, возник вопрос
если json api post ожидает какое то поле int, а поле не приходит
go парсит это поле как 0. Можно как то узнать это в поле пришел ноль, или поле вообще не пришло?
не смог нагуглить(
Nikita
Nik
Nik
Вариант 2 - сессия равна куке, и ты хранишь ее в какомнить горячем хранилище, с экспайром
Di0niz
Прошу подсказать, как можно протестировать main(), чтобы на вход передать строку со значениями (или stream)
//main_test.go
func TestMain(t *testing.T) {
os.Stdin.Write([]byte("333\n"))
main()
}
//main.go
func main() {
var N int
fmt.Scan(&N)
fmt.Println("read: ", N)
}
Kirill
Nik