История изменений
Исправление
kvpfs,
(текущая версия)
:
С чего это неатомарна?
Потому что тут три действия: прочитать, модифицировать и записать. Если условно:
bool b = false;
bool ab = false;
thread 1() {
b = true;
ab = true;
...
}
thread 2() {
while (! ab) {}
assert(b);
}
assert может сработать. Про representation trap - это я зря сказал.
Исходная версия
kvpfs,
:
С чего это неатомарна?
Потому что тут три действия: прочитать, модифицировать и записать. Если условно:
bool b = false;
bool ab = false;
thread 1() {
b = true;
ab = true;
...
}
thread 2() {
while (! ab) {
assert(b);
}
}
assert может сработать. Про representation trap - это я зря сказал.