|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Eugene Karpachov 2:5020/400 08 Oct 2002 01:52:35 To : Valentin Nechayev Subject : Re: g++ -------------------------------------------------------------------------------- .ua> <m3bs6b5sck.fsf@lexa.home.net> <ank5mm$2pi6$3@f1003.n5080.z2.fidonet.org> .ua> <20021004165437.GC3544@iv.nn.kiev.ua> From: Eugene Karpachov <jk@steel.orel.ru> Mon, 7 Oct 2002 14:18:52 +0000 (UTC) Valentin Nechayev написал: >>>> Vitaly.Lugovsky@ontil.ihep.su wrote: >> Hу а всякие race conditions вообще требуют формального доказательства - это >> ведь просто - достаточно построить таблицу всех возможных состояний системы >> (по всем состояниям переключения мутексов и кондишенов) и приписать к >> каждому из них, что к ним привести может. > > Угу. Вот уж всех состояний. По всему набору переменных и данных, которые > могут оказаться в динамической памяти, с любым их количеством. Ы? Hе ждал я, что кто-то в здравом уме будет с Луговским спорить :) > Код чтения данных: захват лока, поиск данных через дерево => получаем > указатель, (внимание!) снимаем лок, работаем с данными. Оппа, race condition. > > Hе буду пропускать страницу, чтобы думали, где же race. Те, кто возятся > с ядром, сразу поймут, остальным так скажу: кто-то другой тут же хватает лок Зачем с ядром - это и без ядра типичный паттерн ошибки: захватить в критической секции указатель на данные, которыми не владеешь (то есть фактически не захватить). Это действительно поймёт любой, кто возится - только не с ядром, а вообще с нитками. (Справедливости ради скажу, что поймёт этот самый любой это после того уже, как получит этими граблями по лбу хотя бы раз.) > А теперь вопрос - расскажи-ка мне, любезный Виталий, как надо было строить :)) -- jk --- ifmail v.2.15dev5 * Origin: JSC OSPAZ (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/226606ccf25f6.html, оценка из 5, голосов 10
|