P
philipp501
Grünschnabel
Hallo,
Gibt es eine Möglichkeit zu überprüfen, ob ein pthread_cond_wait aufgerufen wurde, damit man ein pthread_cond_signal nicht zu früh abgibt?
In diesem Beispiel würde ein thread erzeugt und dann in beiden threads versucht den mutex zu locken.
Es sollte so sein, dass mein_thread auf jeden Fall als erster lockt, da sonst sein cond_wait nicht vor dem cond_signal aufgerufen wird. Kann man das irgendwie sicherstellen?
Ich hoffe es ist klar, was ich meine.
Danke schonmal
Gibt es eine Möglichkeit zu überprüfen, ob ein pthread_cond_wait aufgerufen wurde, damit man ein pthread_cond_signal nicht zu früh abgibt?
Code:
main
{
pthread_create(mein_thread);
pthread_mutex_lock(mutex); //lock 1
...
pthread_cond_signal(mutex);
pthread_unlock(mutex);
...
}
mein_thread
{
pthread_mutex_lock(mutex); //lock 2
pthread_cond_wait(mutex);
...
pthread_mutex_unlock;
}
In diesem Beispiel würde ein thread erzeugt und dann in beiden threads versucht den mutex zu locken.
Es sollte so sein, dass mein_thread auf jeden Fall als erster lockt, da sonst sein cond_wait nicht vor dem cond_signal aufgerufen wird. Kann man das irgendwie sicherstellen?
Ich hoffe es ist klar, was ich meine.
Danke schonmal