pthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_unlock, pthread_mutex_destroy - operations on mutexes ... trylock(pthread_mutex_t * mutex ); int pthread_mutex_unlock(pthre…pthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_unlock, pthread_mutex_destroy - operations on mutexes ... trylock(pthread_mutex_t * mutex ); int pthread_mutex_unlock(pthre…pthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_unlock, pthread_mutex_destroy - operations on mutexes ... trylock(pthread_mutex_t * mutex ); int pthread_mutex_unlock(pthre…pthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_unlock, pthread_mutex_destroy - operations on mutexes ... trylock(pthread_mutex_t * mutex ); int pthread_mutex_unlock(pthre…pthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_unlock, pthread_mutex_destroy - operations on mutexes ... trylock(pthread_mutex_t * mutex ); int pthread_mutex_unlock(pthre…init (3), pthread_mutex_lock (3), pthread_mutex_unlock (3), gettimeofday (2), nanosleep (2). EXAMPLE ... operate on x and y */ pthread_mutex_unlock(&mut); Modifications on x and y …init (3), pthread_mutex_lock (3), pthread_mutex_unlock (3), gettimeofday (2), nanosleep (2). EXAMPLE ... operate on x and y */ pthread_mutex_unlock(&mut); Modifications on x and y …init (3), pthread_mutex_lock (3), pthread_mutex_unlock (3), gettimeofday (2), nanosleep (2). EXAMPLE ... operate on x and y */ pthread_mutex_unlock(&mut); Modifications on x and y …init (3), pthread_mutex_lock (3), pthread_mutex_unlock (3), gettimeofday (2), nanosleep (2). EXAMPLE ... operate on x and y */ pthread_mutex_unlock(&mut); Modifications on x and y …init (3), pthread_mutex_lock (3), pthread_mutex_unlock (3), gettimeofday (2), nanosleep (2). EXAMPLE ... operate on x and y */ pthread_mutex_unlock(&mut); Modifications on x and y …init (3), pthread_mutex_lock (3), pthread_mutex_unlock (3), gettimeofday (2), nanosleep (2). EXAMPLE ... operate on x and y */ pthread_mutex_unlock(&mut); Modifications on x and y …next owner unlocks the mutex using pthread_mutex_unlock (3) before making it consistent ... consistent; unlocking\n"); s = pthread_mutex_unlock(&mtx); if (s != 0) handle_errornext owner unlocks the mutex using pthread_mutex_unlock (3) before making it consistent ... consistent; unlocking\n"); s = pthread_mutex_unlock(&mtx); if (s != 0) handle_errornext owner unlocks the mutex using pthread_mutex_unlock (3) before making it consistent ... consistent; unlocking\n"); s = pthread_mutex_unlock(&mtx); if (s != 0) handle_errornext owner unlocks the mutex using pthread_mutex_unlock (3) before making it consistent ... consistent; unlocking\n"); s = pthread_mutex_unlock(&mtx); if (s != 0) handle_errorkill (3), pthread_mutex_lock (3), pthread_mutex_unlock (3), pthread_mutexattr_destroy (3), pthreadpthread_mutex_lock () pthread_mutex_trylock () pthread_mutex_unlock () pthread_mutexattr_destroy () pthread_mutexattr_init