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