-
- при переключении потока регистры сохраняются и т.п. код с барьером стал безопасным (ошибка пропала) - ну это циклический буффер - тут положили - там забрали. признаком положили/забрали является указатель, при правильной последовательности никаних ыыыыыыыыыы(206 знак., 22.01.2014 15:34, )
- Этот код будет безопасным только, если glob_ww не меняется ни в прерывании, ни в другом потоке. Иначе даже барьер не гарантирует, что эта переменная будет иметь правильное значение. - Sergey_N(22.01.2014 16:40)
- меняется в одном потоке. в другом потоке другой указатель, а этот только читается. вроде как стандартная конструкция, со времен Дейкстры еще... - ыыыыыыыыыы(22.01.2014 16:51, )
- Ну и зачем вам тогда барьер? ИМХО, тут в алгоритме какая-то проблема, а не в компиляторе. - Sergey_N(22.01.2014 16:54)
- меняется в одном потоке. в другом потоке другой указатель, а этот только читается. вроде как стандартная конструкция, со времен Дейкстры еще... - ыыыыыыыыыы(22.01.2014 16:51, )
- Этот код будет безопасным только, если glob_ww не меняется ни в прерывании, ни в другом потоке. Иначе даже барьер не гарантирует, что эта переменная будет иметь правильное значение. - Sergey_N(22.01.2014 16:40)
- +1 нефиг полагаться на атомарность операций (с неизвестным порядком исполнения). - fk0(22.01.2014 11:56)
- при переключении потока регистры сохраняются и т.п. код с барьером стал безопасным (ошибка пропала) - ну это циклический буффер - тут положили - там забрали. признаком положили/забрали является указатель, при правильной последовательности никаних ыыыыыыыыыы(206 знак., 22.01.2014 15:34, )