"Test Case","Test","Template","Implemented" "pthread_mutex_init","psxtmmutex01","psxtmtest_init_destroy","Yes" "pthread_mutex_destroy","psxtmmutex01","psxtmtest_init_destroy","Yes" "pthread_mutex_lock - not available: block","psxtmmutex02","psxtmtest_blocking","Yes" "pthread_mutex_lock - available","psxtmmutex03","psxtmtest_single","Yes" "pthread_mutex_trylock - available","psxtmmutex03","psxtmtest_single","Yes" "pthread_mutex_trylock - not available","psxtmmutex03","psxtmtest_single","Yes" "pthread_mutex_unlock - no threads waiting","psxtmmutex03","psxtmtest_single","Yes" "pthread_mutex_unlock - thread waiting: no preempt","psxtmmutex05","psxtmtest_unblocking_nopreempt","Yes" "pthread_mutex_unlock - thread waiting: preempt","psxtmmutex06","psxtmtest_unblocking_preempt","Yes" "pthread_mutex_timedlock - available","psxtmmutex03","psxtmtest_single","Yes" "pthread_mutex_timedlock - not available: block","psxtmmutex04","psxtmtest_blocking","Yes" "pthread_mutex_setprioceiling","psxtmmutex07","psxtmtest_single","Yes" "pthread_mutex_getprioceiling","psxtmmutex07","psxtmtest_single","Yes" ,,, "pthread_cond_init","psxtmcond01","psxtmtest_init_destroy","No" "pthread_cond_destroy","psxtmcond01","psxtmtest_init_destroy","No" "pthread_cond_signal - no threads waiting","psxtmcond02","psxtmtest_single","No" "pthread_cond_signal - thread waiting: no preempt","psxtmcond03","psxtmtest_unblocking_nopreempt","No" "pthread_cond_signal - thread waiting: preempt","psxtmcond04","psxtmtest_unblocking_preempt","No" "pthread_cond_broadcast - no threads waiting","psxtmcond05","psxtmtest_single","No" "pthread_cond_broadcast - threads waiting: no preempt","psxtmcond06","psxtmtest_unblocking_nopreempt","No" "pthread_cond_broadcast - threads waiting: preempt","psxtmcond07","psxtmtest_unblocking_preempt","No" "pthread_cond_wait - blocks (mutex+condvar pattern)","psxtmcond08","psxtmtest_blocking","No" "pthread_cond_timedwait(&time) - blocks (mutex+condvar pattern)","psxtmcond09","psxtmtest_blocking","No" "pthread_cond_timedwait(&time) - time in past error","psxtmcond10","psxtmtest_blocking","No" ,,, "pthread_create - no preempt","psxtmthread01","psxtmtest_single","Yes" "pthread_create - preempt","psxtmthread02","psxtmtest_single","No" "pthread_join",,, "pthread_detach",,, "pthread_exit",,, "pthread_self","psxtmthread03","psxtmtest_single w/multiple timings","No" "pthread_equal","psxtmthread03","psxtmtest_single w/multiple timings","No" "pthread_getschedparam","psxtmthread04","psxtmtest_single w/multiple timings","No" "pthread_setschedparam - no thread switch","psxtmthread04","psxtmtest_single w/multiple timings","No" "pthread_setschedparam - lower own priority: preempt","psxtmthread05","psxtmtest_single","Yes" "pthread_setschedparam - raise other priority: preempt","psxtmthread06","psxtmtest_single","Yes" ,,, "pthread_once - first time","psxtmonce01","psxtmtest_single","No" "pthread_once - second time","psxtmonce02","psxtmtest_single","No" ,,, "pthread_key_create","psxtmkey01","psxtmtest_single","Yes" "pthread_setspecific","psxtmkey02","psxtmtest_single","Yes" "pthread_getspecific","psxtmkey02","psxtmtest_single","Yes" "pthread_key_delete","psxtmkey01","psxtmtest_single","Yes" ,,, "pthread_cancel",,, "pthread_setcancelstate",,, "pthread_setcanceltype",,, "pthread_testcancel",,, "pthread_cleanup_push",,, "pthread_cleanup_pop",,, ,,, "pthread_getcpuclockid",,, ,,, "pthread_barrier_init","psxtmbarrier01","psxtmtest_init_destroy","Yes" "pthread_barrier_destroy","psxtmbarrier01","psxtmtest_init_destroy","Yes" "pthread_barrier_wait - blocking","psxtmbarrier02","psxtmtest_blocking","Yes" "pthread_barrier_wait - releasing: no preempt","psxtmbarrier03","psxtmtest_unblocking_nopreempt","Yes" "pthread_barrier_wait - releasing: preempt","psxtmbarrier04","psxtmtest_unblocking_preempt","Yes" ,,, "pthread_spin_init","psxspin01","psxtmtest_init_destroy","No" "pthread_spin_destroy","psxspin01","psxtmtest_init_destroy","No" "pthread_spin_lock - available","psxspin02","psxtmtest_single w/multiple timings","No" "pthread_spin_trylock - available","psxspin02","psxtmtest_single w/multiple timings","No" "pthread_spin_trylock - not available","psxspin02","psxtmtest_single w/multiple timings","No" "pthread_spin_unlock","psxspin02","psxtmtest_single w/multiple timings","No" ,,, "pthread_rwlock_init","psxtmrwlock01","psxtmtest_init_destroy","Yes" "pthread_rwlock_destroy","psxtmrwlock01","psxtmtest_init_destroy","Yes" "pthread_rwlock_rdlock - available","psxtmrwlock01","psxtmtest_single","Yes" "pthread_rwlock_rdlock - not available: blocks","psxtmrwlock02","psxtmtest_blocking","Yes" "pthread_rwlock_tryrdlock - available","psxtmrwlock01","psxtmtest_single","Yes" "pthread_rwlock_tryrdlock - not available","psxtmrwlock01","psxtmtest_single","Yes" "pthread_rwlock_timedrdlock - available","psxtmrwlock01","psxtmtest_single","Yes" "pthread_rwlock_timedrdlock - not available: blocks","psxtmrwlock03","psxtmtest_blocking","Yes" "pthread_rwlock_unlock - no threads waiting","psxtmrwlock01","psxtmtest_single","Yes" "pthread_rwlock_unlock - thread waiting: no preempt","psxtmrwlock06",,"Yes" "pthread_rwlock_unlock - thread waiting: preempt","psxtmrwlock07",,"Yes" "pthread_rwlock_wrlock - available","psxtmrwlock01","psxtmtest_single","Yes" "pthread_rwlock_wrlock - not available: blocks","psxtmwrlock04","psxtmtest_blocking","Yes" "pthread_rwlock_trywrlock - available","psxtmrwlock01","psxtmtest_single","Yes" "pthread_rwlock_trywrlock - not available","psxtmrwlock01","psxtmtest_single","Yes" "pthread_rwlock_timedwrlock - available","psxtmrwlock01","psxtmtest_single","Yes" "pthread_rwlock_timedwrlock - not available: blocks","psxtmrwlock05","psxtmtest_blocking","Yes" ,,, "mq_open (first open)","psxtmmq01","psxtmtest_init_destroy","Yes" "mq_close (close of first)","psxtmmq01","psxtmtest_init_destroy","Yes" "mq_open (second open)","psxtmmq01","psxtmtest_init_destroy","Yes" "mq_close (close of second)","psxtmmq01","psxtmtest_init_destroy","Yes" "mq_unlink","psxtmmq01","psxtmtest_init_destroy","Yes" "mq_receive - available",,"psxtmtest_single","Yes" "mq_receive - not available: block",,"psxtmtest_blocking","No" "mq_timedreceive - available",,"psxtmtest_single","Yes" "mq_timedreceive - not available: blocks",,"psxtmtest_single","No" "mq_send - no threads waiting",,"psxtmtest_single","Yes" "mq_send - thread waiting: no preempt",,"psxtmtest_unblocking_nopreempt","No" "mq_send - thread waiting: preempt",,"psxtmtest_unblocking_preempt","No" "mq_timedsend - no threads waiting",,"psxtmtest_single","Yes" "mq_timedsend - thread waiting: no preempt",,"psxtmtest_unblocking_nopreempt","No" "mq_timedsend - thread waiting: preemption",,"psxtmtest_unblocking_preempt","No" "mq_notify ",,"psxtmtest_single","Yes" ,,, "sem_init","psxtmsem01","psxtmtest_single","Yes" "sem_destroy","psxtmsem01","psxtmtest_single","Yes" "sem_open (first open named)","psxtmsem01","psxtmtest_single","Yes" "sem_open (second open named)","psxtmsem01","psxtmtest_single","Yes" "sem_close (named first/nested close)","psxtmsem01","psxtmtest_single","Yes" "sem_unlink (does not delete)","psxtmsem01","psxtmtest_single","Yes" "sem_close (named second close - removes)","psxtmsem01","psxtmtest_single","Yes" "sem_unlink (deletes)","psxtmsem01","psxtmtest_single","Yes" "sem_wait - available","psxtmsem02","psxtmtest_single","Yes" "sem_wait - not available: block","psxtmsem03","psxtmtest_blocking","Yes" "sem_trywait - available","psxtmsem02","psxtmtest_single","Yes" "sem_trywait - not available","psxtmsem02","psxtmtest_single","Yes" "sem_post - no threads waiting","psxtmsem02","psxtmtest_single","Yes" "sem_post - thread waiting: no preempt","psxsemtm04","psxtmtest_unblocking_nopreempt","Yes" "sem_post - thread waiting: preempt","psxtmsem05","psxtmtest_unblocking_preempt","Yes" "sem_getvalue","psxtmsem02","psxtmtest_single","Yes" ,,, "sleep - yield","psxtmsleep01","psxtmtest_single","Yes" "sleep - blocking","psxtmsleep02","psxtmtest_blocking","Yes" "nanosleep - yield","psxtmnanosleep01","psxtmtest_single","Yes" "nanosleep - blocking","psxtmnanosleep02","psxtmtest_blocking","Yes"