ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
22 ноября
792959 Топик полностью
fk0, легенда (09.11.2017 00:47, просмотров: 398) ответил fk0 на 1) volatile int head, tail. 2) вставить asm volatile("": : :"memory") после каждого ++ (или после обоих).
Торможу. Собственно операция ++ нифига не атомарная же. Чтение-модификация-запись. И прерваться может на каждом тире. Если gcc то использовать __sync_add_and_fetch(), иначе х.з. что делать. Для обработчиков прерываний, понятно, мьютексы невозможны. Только атомарные операции или какие-то полумеры.
[ZX]