SO-1st-2.3-w12.tresc-1.0-Slajd16
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Zmienna warunkowa — implementacja
W kontekście przedstawionych wcześniej implementacji semaforów i zamków powyższy opis jest dość oczywisty. Warto tylko zwrócić uwagę na dwie sprawy:
- Wejście w stan oczekiwania po wywołaniu funkcji pthread_cond_wait jest bezwarunkowe.
- Opuszczenie funkcji pthread_cond_wait zależy od możliwości zajęcia zamka. Po otrzymaniu sygnału wątek zachowuje się tak, jak w przypadku wywołania funkcji pthread_mutex_lock. Wybór następnego wątku do zajęcia zamka po jego zwolnieniu w innym wątku (w wyniku wywołania pthread_mutex_unlock lub pthread_cond_wait) zależy od polityki szeregowania.