LINUX.ORG.RU

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

Исправление gobot, (текущая версия) :

Переменная кстати не влияет. Я пробовал просто new Process(«zzzzzz») и все равно в старый адрес записывается

Правильно я предполагаю, что данные перезатерлись и теперь тред видит новый объект? Может сделать обнаружение «подмены»? Например в начале записать id объекта, а потом в цикле его проверять

//start thread
int id = self->id;
for (;;) {
  if(self->isClosed() || self->id != id) return error("Объект подменен или убит");
}


а то все эти volatile, мьютексы пока сложно для меня. Нужно максимально проще, а то новые баги добавятся, которые ещё труднее определить будет

Исходная версия gobot, :

Переменная кстати не влияет. Я пробовал просто new Process(«zzzzzz») и все равно в старый адрес записывается

Правильно я предполагаю, что данные перезатерлись и теперь тред видит новый объект? Может сделать обнаружение «подмены»? Например в начале записать id объекта, а потом в цикле его проверять

//start thread
int id = self->id;
for (;;) {
  if(self->isClosed() || self->id != id) return error("Объект подменен или убит");
}


Или id тоже измениься?

а то все эти volatile, мьютексы пока сложно для меня. Нужно максимально проще, а то новые баги добавятся, которые ещё труднее определить будет