Рассмотрим простую (глобальную в моем случае) переменную:
int i;
Где-то доступна эта переменная
pthread_mutex_lock(i_mutex);
if(i == other value) {
do_something();
}
pthread_mutex_unlock(i_mutex);
Другой поток обновляет i, пока он держит i_mutex. Может ли компилятор кэшировать значение i так
Я не получил последнее значение? Должен i быть неустойчивым?