semaphore s2; semaphore s; semaphore t; const int N = 5; int buffer[N]; int write_pos = 0; int read_pos = 0; void queue_add(int item) { buffer[write_pos] = item; write_pos = (write_pos + 1) % N; } int queue_get() { int item; item = buffer[read_pos]; read_pos = (read_pos + 1) % N; return item; } void prod1(int i, int n){ for(i; i <= n; i=i+1){ wait(s2); queue_add(i); signal(s); } signal(t); } void prod2(int i, int n){ wait(t); for(i; i<=n; i=i+1){ wait(s2); queue_add(i); signal(s); } } void kons(int n){ int i = 0; int liczba; for(i = 0; i < n; i = i+1){ wait(s); liczba = queue_get(); signal(s2); cout << "Pobralem" <