Задача стоит такая: нужно, чтобы поток Б (обработка информации) дождался поток А (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);
}
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум pthread_cond_wait помогите разобраться (2006)
- Форум Цикл в thread по mutex или atomic_bool в С++? (2022)
- Форум Отладка ошибки многопоточности (2016)
- Форум Обёртка над Posix Timers (2016)
- Форум Синхронизация (2016)
- Форум libvorbisfile Приостановить декодирование. (2010)
- Форум BOOST thread не понимаю ... (2011)
- Форум Не возникнет ли гонка данных? (2018)
- Форум COM порт, буфер чтения заполняется частями... Язык чистый C (2014)
- Форум И снова про многопоточность (2016)