Cześć.

Zwracam się do was z pytaniem, czy w Linuxie jest jakiś sposób na ,,zamknięcie" (wywołanie sem_wait()) więcej niż jednego semafora JEDNOCZEŚNIE? Prawdę powiedziawszy nie jestem do końca przekonany, czy jest to niezbędne, ale póki co chciałbym po prostu wiedzieć czy jest to możliwe :)

Pytanie bierze się z problemu producent-klienci.

Mam jednego producenta, który umieszcza losowo produkty na jednej z 4 kolejek. Pierwszy konsument, sprawdza czy są dwa produkty na pierwszej kolejce i dwa na drugiej, drugi producent, czy są trzy na drugiej i jeden na trzeciej, a trzeci sprawdza czy jest jeden produkt na trzeciej kolejce i czwartej. Tylko jeśli spełnione będą te warunki dany klient może zdjąć produkty z kolejek.

Mamy więc 4 bufory, jednego producenta i wielu (załóżmy na razie, że 4) odbiorców, gdzie każdy klient ma inny warunek zdjęcia produktów z kolejek. Spotkał się ktoś z czymś takim?