Барьер между двумя процессами - PullRequest
2 голосов
/ 26 июля 2011

Я хочу создать барьер между двумя процессами. Для этой цели я использовал два семафора. Когда процесс 1 достигает барьера, он сигнализирует о процессе 2, публикуя первый семафор. Процесс 2 при получении сигнала отправляет второй семафор в качестве подтверждения.

Код выглядит примерно так ...

Proc1:

sem_post( &sem_sig );
sem_wait( &sem_ack );

Proc2:

sem_wait( &sem_sig );
sem_post( &sem_ack );

Теперь мой вопрос: является ли этот метод наиболее эффективным или есть ли лучший метод для реализации барьеров уровня процесса между двумя процессами?

1 Ответ

2 голосов
/ 27 июля 2011

Linux реализует pthread_barrier_t. Для меня это выглядит идеально подходит для ваших нужд. Для вызова pthread_barrier_init вам просто нужно указать, что этот барьер является общим для процесса.

...