Только что обнаружил, что этим 2 утилитам нужно как минимум 2 параметра, например, 2 мьютекса для блокировки.
Должно быть так (из cppreference.com):
void assign_lunch_partner(Employee &e1, Employee &e2)
{
static std::mutex io_mutex;
{
std::lock_guard<std::mutex> lk(io_mutex);
std::cout << e1.id << " and " << e2.id << " are waiting for locks" << std::endl;
}
{
std::scoped_lock lock(e1.m, e2.m);
}
}
Делает ли это есть смысл требовать в аренду 2 параметра? Каково было рассмотрение проекта, wi sh, чтобы узнать больше деталей.
Большое спасибо.