Проблема оптимизации компилятора / переменная имеет неправильное значениеLinux

Ответить
Anonymous
 Проблема оптимизации компилятора / переменная имеет неправильное значение

Сообщение Anonymous »

Я определяю переменные как

Код: Выделить всё

volatile sig_atomic_t v1;
volatile int v2;
Затем в одном процессе (потоке) выполните

Код: Выделить всё

v1 = false;
v2 = 0;
...
v2 = (some_var);
v1 = true;
и в другом процессе (потоке)

Код: Выделить всё

while(!v1) { (doing some tasks not related to v1 and v2); }
if(v2 == 0) { (do something); }
Проблема, с которой я сталкиваюсь, заключается в том, что v2 иногда устанавливается в 0, когда while заканчивается. while завершается, когда v1 становится истинным. (some_var) оказывается ненулевым. Использование gcc.
Что мне здесь не хватает?

Подробнее здесь: https://stackoverflow.com/questions/787 ... rong-value
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»