ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
18 июля
1160009 Топик полностью
SciFi (29.12.2021 10:59, просмотров: 255) ответил Samx на Достаточно такой атомарности, чтобы читающий поток получал стабильное состояние указателя - то есть либо текущее, либо предыдущее. А не так, что младший байт уже инкрементировался и переполнился, а старший ещё не обновился.
Например, вот: 
int read_reg(void)
{
    int ret[2];
    ret[0] = REG;
    for (;;)
    {
        ret[1] = REG;
        if (ret[0] == ret[1])
        {
            return ret[0];
        }
        ret[0] = ret[1];
    }
}
ส็็็็็็็็็็็็็็็็็็็็็็็็็༼ ຈل͜ຈ༽ส้้้้้้้้้้้้้้้้้้้้้้้