What happens if all threads are busy and main thread has sent thread cond signal ?
1 Main Thread and 3 pthreads in thread pool. 3 pthreads are in status of
pthread_mutex_lock(&sync_mutex);
pthread_cond_wait(&sync_cond, &sync_mutex);
pthread_mutex_unlock(&sync_mutex);
Main thread has sent Signal to wake up the threads to process the work. In this situation, What if 3 threads are already busy and next signal has arrived?
Nothing. The signal disappears.
If your using one of the following functions:
pthread_cond_signal
- restarts one of the threads that are waiting on the condition variable cond.
pthread_cond_broadcast
- wake up all threads blocked by the specified condition variable.
The manual states that
The pthread_cond_broadcast() and pthread_cond_signal() functions shall have no effect if there are no threads currently blocked on cond.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With