The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Facebook открыл RacerD, статический анализатор для многопото..., opennews (??), 21-Окт-17, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


27. "Facebook открыл RacerD, статический анализатор для многопото..."  +/
Сообщение от pavlinux (ok), 22-Окт-17, 03:21 
> В модели памяти это называется Data Race. И необязательно необходим мьютекс.
> Так вот, Data Race != Race Condition.

Хвать гнать, Race Condition - это общее описание всех багов возникающих при доступе к чему-либо, двух и более кого-либо.

Есть такие баги "Time of check to time of use (TOCTOU)", тож разновидность race condition.

Ответить | Правка | Наверх | Cообщить модератору

28. "Facebook открыл RacerD, статический анализатор для многопото..."  –2 +/
Сообщение от Аноним (-), 22-Окт-17, 13:01 
не гуглятся примеры dr vs rc? я помогу https://blog.regehr.org/archives/490
Ответить | Правка | Наверх | Cообщить модератору

33. "Facebook открыл RacerD, статический анализатор для многопото..."  +1 +/
Сообщение от pavlinux (ok), 22-Окт-17, 20:41 
> не гуглятся примеры dr vs rc? я помогу https://blog.regehr.org/archives/490

Еще раз:  "Race Condition - это общее описание всех багов возникающих при доступе к чему-либо, двух и более кого-либо."
У вас в примере классический race cond."multiple threads can concurrently try to update an account balance".
В решении корявое решение в стиле Winows (с надеждой на компилятор). Отбалды делать атомарные операции
над не атомарными перемененными ну совсем не гарантирует атомарность. Linux так вообще этого не позволит.

Ответить | Правка | Наверх | Cообщить модератору

45. "Facebook открыл RacerD, статический анализатор для многопото..."  +1 +/
Сообщение от Кузнец (?), 23-Окт-17, 15:53 
>> не гуглятся примеры dr vs rc? я помогу https://blog.regehr.org/archives/490
> Еще раз:  "Race Condition - это общее описание всех багов возникающих
> при доступе к чему-либо, двух и более кого-либо."
> У вас в примере классический race cond."multiple threads can concurrently try to
> update an account balance".
> В решении корявое решение в стиле Winows (с надеждой на компилятор). Отбалды
> делать атомарные операции
> над не атомарными перемененными ну совсем не гарантирует атомарность. Linux так вообще
> этого не позволит.

По-моему, вы немного не о том. Гонка возникает, когда есть... гонка. Т.е. непредсказуемая последовательность "приходящих к финишу" чего-то там. Вы же говорите о ложном суждении о естественной атомарности инвариантов. А атомарность инвариантов нужно описывать разрабу и описывать осмысленно. Компилятор этого не сделает.
В общем, и в литературе эту ситуацию почему-то запихивают в "гонку". Хотя тут никакой гонки нет.

Ответить | Правка | Наверх | Cообщить модератору

50. "Facebook открыл RacerD, статический анализатор для многопото..."  +/
Сообщение от Аноним (-), 23-Окт-17, 20:48 
Во-первых, в статье нет решений, есть только примеры, показывающие разницу между rc и dr.
Во-вторых, приведены они в псевдокоде. "Атомарная операция" определяется нестрого, это не конструкция языка, и атомарные переменные тут не при чем. Важно лишь, что результат в блоке одновременно видим или невидим всем потокам. Реализовать можно через системный мьютекс, Linux позволит, я гарантирую.
Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

35. "Facebook открыл RacerD, статический анализатор для многопото..."  +/
Сообщение от pavlinux (ok), 22-Окт-17, 20:53 
......Пля, модыр, трахни в моск свой кревой парсер
Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру