170 похожих чатов

А в чём прикол код фреймворка смотреть сейчас?

9 ответов

24 просмотра

какая разница, лок-фри погроммирование не меняется уже лет 20 как :)

IdiocyAcceptance- Автор вопроса
IdiocyAcceptance
Как это может быть Лок фри если там лок?

там выебистой код. если я правильно понял происходящее, то чтение этого массива будет lock-free в том смысле, что ты можешь спокойно его читать даже если параллельно кто-то пытается его менять, т.к. ты эти изменения не увидишь. такие выебоны известны как "лок-фри ридинг", но я не достаточно хорошо понимаю как дотнет работает, чтобы этот код до конца понять.

называется оно rcu, но видимо чтоб не делать везде копий решили соптимизировать Add/Remove кейс без контеншна и сделать его на локе. Но я сам до конца не понимаю зачем здесь копия в локальную переменную

Aleksei Kuznetsov Kuznetsov
называется оно rcu, но видимо чтоб не делать везде...

если они решили сделать адд / ремов на классическом локе, то код абсолютно дебильный же достаточно сделать лок(массив) и меняет его как душе угодно.

The Zazaeil
если они решили сделать адд / ремов на классическо...

Ах, это даже не рцу, они массив реаллоцируют и ссылку меняют. А рейс происходит в момент когда два треда например делают add, оба забирают одну и ту же ссылку, первый лочит, реаллоцирует , меняет ссылку, второй проигрывает рейс. В случае если они будут лочить без копии будет другое поведение, и проверить что массив поменялся, пока ты висел в локе будет нельзя. Нужно где-то закешить старое значение

Aleksei Kuznetsov Kuznetsov
Ах, это даже не рцу, они массив реаллоцируют и ссы...

рейса там не может произойти, реаллокация под локом

The Zazaeil
рейса там не может произойти, реаллокация под локо...

Еще как происходит, потому что изменение того куда ссылается m_array не под локом

Aleksei Kuznetsov Kuznetsov
Ах, это даже не рцу, они массив реаллоцируют и ссы...

это тоже дебильный код. если ты в цикле while - классический CAS - пытаешься выиграть гонку и ты проиграл лок на текущей итерации.. НАХУЯ ЖДАТЬ ВНУТРИ ЦИЛКА?! по твоей логике там надо было пойти на след итерацию и заново перечитать ссылку

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта