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
Threads in C
pthreads library and threaded programming in C