История изменений
Исправление KennyMinigun, (текущая версия) :
Сюда нужно лок отдать, и не абы какой, а тот же самый, под которым выставляется, в моём случае, task_status
В std::atomic вообще может и не быть лока (lock-free), так что надо либо лочить отдельным локом, либо синхронизироваться на task_status, в стиле():
while (task_status.load(std::memory_order_acquire) != ready)
{
std::this_thread::sleep_for(INTERVAL);
}
UPD Хотя, on the second thought, может atomic тут и не подходит (если надо ждать).
Исправление KennyMinigun, :
Сюда нужно лок отдать, и не абы какой, а тот же самый, под которым выставляется, в моём случае, task_status
В std::atomic вообще может и не быть лока (lock-free), так что надо либо лочить отдельным локом, либо синхронизироваться на task_status, в стиле():
while (task_status.load(std::memory_order_acquire) != ready)
{
std::this_thread::sleep_for(INTERVAL);
}
Исходная версия KennyMinigun, :
Сюда нужно лок отдать, и не абы какой, а тот же самый, под которым выставляется, в моём случае, task_status
Ну в std::atomic вообще может и не быть лока (lock-free), так что надо либо лочить отдельным локом, либо синхронизироваться на task_status, в стиле():
while (task_status.load(std::memory_order_acquire) != ready)
{
std::this_thread::sleep_for(INTERVAL);
}