LINUX.ORG.RU

История изменений

Исправление 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 - это я зря сказал.