ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
12 июля
401226 Топик полностью
fk0, легенда (10.04.2013 19:36, просмотров: 47) ответил rezident на Если это кольцевой буфер в который пишется из одной процедуры, а читается из другой, то почему бы не использовать два индекса (для записи и для чтения) и один счетчик элементов буфера?
Если это кольцевой буфер, то нет нужды каких-то блокировок или запрета прерываний, если переменные могут изменяться атомарно, т.е. для 8 бит процессора 16 бит переменные при чтении требуют таки запрета на время чтения один раз только, дальше можно работать с копией, даже если она уже не соотвествует действительности (кстати это причина, почему удобней использовать только два индекса без всяких прочих флагов и счётчиков методом "Always keep one slot open" -- обращение к каждой "лишней" переменной требует блокировки). Вообще хорошая статья: http://en.wikipedi …ays_Keep_One_Slot_Open
[ZX]