Задача стоит такая: нужно, чтобы поток Б (обработка информации) дождался поток А (UI), какие для этого есть средства И насколько вообще это корректная задача (может при правильном дизайне таких проблем вставать не должно?)? Я придумал два способа - первый, закомментированный - вечный цикл, пока второй поток не присвоит sleep false. Второй - такая система блокировок. Первый способ жрет процессор почем зря, оба выглядят нехорошо. Что посоветуете? Или я не знаю что-то стандартного на этот случай?
pthread_mutex_t lock;
bool sleep = false;
extern "C" void resume()
{
pthread_mutex_unlock(&lock);
//sleep = false;
}
extern "C" void suspend()
{
//sleep = true;
//while (sleep);
pthread_mutex_lock(&lock);
pthread_mutex_lock(&lock);
pthread_mutex_unlock(&lock);
}