Как бороться с тайм-аутом ожидания семафора

#linux #multithreading #posix #semaphore #thread-synchronization

#linux #многопоточность #posix #семафор #синхронизация потоков

Вопрос:

У меня есть два потока, синхронизированные с семафорами. Поток 1 ожидает sem_post() от потока 2 с помощью sem_timedwait() . Но я боюсь, что всякий раз, когда происходит тайм-аут, соответствующая функция sem_post(), которая может произойти позже, увеличит значение семафора, и, следовательно, когда для Thread1 произойдет следующая итерация функции sem_timedwait(), она разблокируется, не дожидаясь соответствующей функции sem_post() в Thread2. Я чувствую, что это очень общая проблема, и у нее должен быть стандартный способ ее решения.

Комментарии:

1. Пожалуйста, поделитесь фрагментом кода того, что вы пытаетесь сделать.

2. Если синхронизация важна, то почему вы вообще допускаете тайм-ауты?