Как написать собственный pthread_timedjoin_np?

270
15 июня 2017, 06:45

Всем привет!

В Posix threads есть НЕстандартизированная функция pthread_timedjoin_np(), которая ждет завершение потока с таймаутом. При этом гарантируется, что если функция завершилась неудачей, то в следующий раз, блокирующая функция pthread_join() НЕ вернет ошибку EINVAL.

Я встречал Linux-like ОС где не было поддержки функции pthread_timedjoin_np(). В связи с этим, я бы хотел сделать собственную реализацию этой возможности.

Придумал подход через std::async и std::future запускать асинхронно и через std::future ждать timeout и завершать поток, но его я считаю глупым походом, тем более, что не уверен, что в следующий раз при вызове функции pthread_join() она мне НЕ вернет EINVAL.

Если вдруг кто-то с этим уже боролся или есть идеи, то предложить решение, пожалуйста, спасибо.

READ ALSO
Компоненты Indy 10 IdTCPClient и IdTCPServer

Компоненты Indy 10 IdTCPClient и IdTCPServer

Где можно посмотреть примеры на С++ работы с компонентами Indy 10 IdTCPClient и IdTCPServer при пересылке целочисленных массивов?

224
Как подключить либу к своему проекту?

Как подключить либу к своему проекту?

Редко пользуюсь CMakeВроде всё просто

359
вопрос по QTimer

вопрос по QTimer

здравствуйте, интересует пара вопросов по QTimer тк

384
Обход доски конем

Обход доски конем

Задачка, видимо, олимпиадная, на рекурсиюСобственно, надо пройти всю доску конем так, чтобы на каждой его клетке конь был только 1 раз

302