mutexes are used to serialize access to *shared data*. Don't use them for non-shared data, and don't use them if your program's logic ensures that only one thread is accessing a particular data structure at a single time.
Explore more quotes
pthread_cond_wait() simultaneously unlock the mutex (so that other threads can modify the linked list) and wait on the condition (so that pthread_cond_wait() will wake up when it is "signalled" by another thread). Now that the mutex is unlocked, other threads can access and modify the linked list, possibly adding items
Immediately after unlocking the mutex, thread 2 calls the function pthread_cond_broadcast(&mycond). By doing so, thread 2 will cause all threads waiting on the mycond condition variable to immediately wake up. This means that our first thread (which is in the middle of a pthread_cond_wait() call) will now wake up.
After thread 2 called pthread_cond_broadcast(&mymutex) you might think that thread 1's pthread_cond_wait() will immediately return. Not so! Instead, pthread_cond_wait() will perform one last operation: relock mymutex. Once pthread_cond_wait() has the lock, it will then return and allow thread 1 to continue execution.
I go back to a very specific aspect of the Midwest - small towns surrounded by farmland. They make a good stage for what I like to write about, i.e., roads and houses, bridges and rivers and weather and woods, and people to whom strange or interesting things happen, causing problems they must overcome.
Sam Cooke had a huge influence on me. He left the gospel field at one point and went into the secular, and he had this huge hit, 'You Send Me.' Irma, my older sister, and I heard 'You Send Me' on the radio while we were driving through the South one night. We had to stop the car. We got out and danced around the car out on the highway.