Всем привет!
В Posix threads есть НЕстандартизированная функция pthread_timedjoin_np()
, которая ждет завершение потока с таймаутом. При этом гарантируется, что если функция завершилась неудачей, то в следующий раз, блокирующая функция pthread_join()
НЕ вернет ошибку EINVAL.
Я встречал Linux-like ОС
где не было поддержки функции pthread_timedjoin_np()
. В связи с этим, я бы хотел сделать собственную реализацию этой возможности.
Придумал подход через std::async
и std::future
запускать асинхронно и через std::future
ждать timeout
и завершать поток, но его я считаю глупым походом, тем более, что не уверен, что в следующий раз при вызове функции pthread_join()
она мне НЕ вернет EINVAL.
Если вдруг кто-то с этим уже боролся или есть идеи, то предложить решение, пожалуйста, спасибо.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Где можно посмотреть примеры на С++ работы с компонентами Indy 10 IdTCPClient и IdTCPServer при пересылке целочисленных массивов?
Задачка, видимо, олимпиадная, на рекурсиюСобственно, надо пройти всю доску конем так, чтобы на каждой его клетке конь был только 1 раз