LINUX.ORG.RU

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

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

Ставь первым потоком перед нотификацией флаг

Понятно. Соответственно и проверять флаг перед нотификацией. Если ещё поднят, значит нотификацию не делать.
Вопрос в том, где это правильно делать? Внутри вот этого блока (из примера):

{
  std::lock_guard<std::mutex> lk(m);
  ready = true;
  std::cout << "main() signals data ready for processing\n";
}

Соответственно, cv.notify_one() внести внутрь блока с lock_guard?

Исходная версия ls-h, :

Ставь первым потоком перед нотификацией флаг

Понятно. Соответственно и проверять флаг перед нотификацией. Если ещё поднят, значит нотификацию не делать.
Вопрос в том, где это правильно делать? Внутри вот этого блока (из примера):

[br]{[br]    std::lock_guard<std::mutex> lk(m);[br]    ready = true;[br]    std::cout << "main() signals data ready for processing\n";[br]}[br]

Соответственно, cv.notify_one() внести внутрь блока с lock_guard?