witam
Chciałbym spytać do czego można wykorzystać zmienne warunkowe z biblioteki pthread - tyczą się jej funkcje pthread_cond_*.
Rozumiem oczywiście, że chodzi o synchronizacje wątków, jednak mając już mutexy - pthread_mutex_lock i pthread_mutex_unlock, gdzie pierwsza z tych funkcji zawsze wykonuje nieaktywne czekanie jeżeli mutex już wcześniej został zatrzaśniety (nie zużywa niepotrzebnie procesora), nie rozumiem do czego potrzebne mi są jeszcze sygnały. Mam tam dwie funkcje: pthread_cond_signal i pthread_cond_wait, zmienna warunkowa zawsze jest powiązana z mutexem. Na początku myślałem ze wprowadzono je dlatego ze gdy czeka sie za pomocą mutexa (pthread_mutex_lock blokuje) to czekanie jest aktywne, ale jeżeli tak nie jest to już kompletnie nie wiem po co mi te zmienne warunkowe.
Mógłby mi ktoś podać przykład wraz z kodem gdzie zmienna warunkowa znajduje swoje zastosowanie? Najlepiej byłoby gdyby był to taki przykład w, ktorym bez zmiennej warunkowej ani rusz... ;-)