альтернатива pthread _timedjoin _np

Я пытаюсь выяснить, как избавиться от зависимости от pthread _timedjoin _np, потому что я пытаюсь создать код на OSX.

Прямо сейчас у меня есть очередь потоков, из которых я выскакиваю, выполняя pthread _timedjoin _np, и если они не возвращаются, они возвращаются в очередь.

Конец функции thread _, которая вызывается для каждого потока, делает pthread _выходом (0 ); чтобы принимающий поток мог проверить возвращаемое значение, равное нулю.

Я подумал, что могу попробовать использовать pthread _cond _timedwait ()для достижения аналогичного эффекта, однако я думаю, что пропустил один шаг.

Я думал, что смогу заставить рабочий поток A сигнализировать об условии И pthread _выйти ()внутри мьютекса, а рабочий поток B мог проснуться по сигналу, а затем pthread _присоединиться (). Проблема в том, что поток B не знает, какой поток выдал условный сигнал. Мне нужно явно передать это как часть условного сигнала или что?

Спасибо

Дерек

7
задан Derek 18 July 2012 в 22:16
поделиться