LINUX.ORG.RU

Нидаганяю про семафоры. В упор!


0

0

1. Делаем named семафор через sem_open. И периодически плюём в него sem_post. 2. Открывем (в другой задаче) этот семафор и в бесконечном цикле делаем sem_wait. Все работает. 3. Запускаем несколько задач, которые делают sem_wait на этом семафоре. Получается жопа полная. Мне нужно чтобы все эти задачи получали по одному тику каждый sem_post. А получается что 10 раз послали sem_post, на все эти задачи и приходится 10 sem_post. А мне нужно чтобы КАЖДАЯ задача получала КАЖДЫЙ sem_post. К примеру 3 раза послали sem_post, а sem_wait ждет 10 задач, так мне нужно чтобы каждая из этих 10 задач получила 3 sem_post.

Как это сделать?

во-первых, это в девелопмент, а во-вторых, ну неужели так сложно подумать. семафоры работают правильно, так и должны они работать.
тут тебе семафоры не помогут, используй например очередь сообщений, или диспечера передачи какого: каждый поток у него регистрируется, он получает от мастера сообщение и передает его всем зарегистрировавшемся.

val-amart ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.