Цитата(rezident @ Jun 18 2008, 20:21)

Для кольцевых буферов я лично использую два индекса - один индекс для чтения, другой для записи. Ну и счетчик еще.
Я тоже так делаю :-) Но всё равно, изменение значения счётчика приходится выполнять при запрещённых прервыаниях, ибо операция не атомарная.
Цитата(Rst7 @ Jun 18 2008, 23:11)

Я к тому веду, что в общем случае, при работе с кольцевыми буферами необходима атомарная RMW-операция с памятью хотя-бы в одном месте. С учетом того, что на RISC-процах нет столь любимого на PDP11 INC и DEC прямо ячейки памяти, получается, что необходимо уметь запрещать/разрешать прерывания (или переключение задач в общем случае).
Во-во
Если бы я знал, что такое электричество...