Мой демон инициализирует себя в четырех разных потоках, прежде чем он начинает делать свои вещи.Прямо сейчас я использую счетчик, который увеличивается, когда поток запускается, и уменьшается, когда он заканчивается.Когда счетчик достигает 0, я вызываю обратный вызов инициализации.
Это предпочтительный способ сделать это, или есть лучшие способы? Я использую потоки POSIX (pthread
)и я просто запускаю цикл while
, чтобы дождаться, пока счетчик не достигнет 0.
Редактировать: pthread_barrier_*
функции недоступны на моей платформе, хотя они кажутся лучшимивыбор.
Редактировать 2: Не все потоки выходят.Некоторые инициализируют, а затем прослушивают события.По сути, поток должен сказать: «Я закончил инициализацию».