Методы — ACE Как реализовать время ожидания для вызова функции?

Мне нужно обернуть функцию в тайм-аут, используя ACE в C ++.
Эта функция ожидает ответа от ОС и иногда не возвращает.

Я не могу изменить функцию, поэтому я не могу поместить условие прерывания непосредственно в нее. Я должен добавить таймаут к функции извне.

Я видел аналогичный вопрос для него в Boost —
C ++: Как реализовать время ожидания для произвольного вызова функции?

Тем не менее, я использую ACE.

0

Решение

Поместите функцию в отдельный поток. Если поток не завершился в течение времени ожидания, отсоедините его и дайте ему поработать до конца в фоновом режиме, не получив от него никакого результата.

Обратите внимание, что это не будет работать, если функция имеет побочные эффекты (например, запись в файл).

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector