У меня есть поток, который вращается до тех пор, пока int, измененный другим потоком, не станет определенным значением.
int cur = this.m_cur;
while (cur > this.Max)
{
// spin until cur is <= max
cur = this.m_cur;
}
Должен ли this.m _cur быть объявлен volatile, чтобы это работало? Возможно ли, что это будет крутиться вечно из-за оптимизации компилятора?