Я недавно увидел свет мощного поведения EventWaitHandle в C # и решил перенести некоторые функции в родственные приложения, чтобы сделать то же самое. Единственная проблема в том, что сестринское приложение написано на C.
Ничего страшного, я использую pthreads, которые имеют тип данных pthread_cond_t, который позволяет передавать сигналы. Мой единственный вопрос: возможно ли, чтобы cond был «сигнализирован» до того, как что-то его ждет?
Прямо сейчас мое тестирование говорит нет. То есть, если ThreadA генерирует сигнал до того, как ThreadB ожидает, ThreadB будет ждать неопределенно долго. Есть ли другой тип pthread, который я могу использовать, который ведет себя ближе к функциональности EventWaitHandle в C #? Объект получает сигнал, что означает, что первый поток, ожидающий его, немедленно пройдет и установит для него значение unsignalled.
Внедрение pthread_cond в другую структуру данных не будет слишком сложным для достижения этой цели. Но опять же, эта функция уже доступна в библиотеке pthread?