| <assertions> |
| <assertion id="1" tag="ref:XSH6:33908:33911"> |
| The function |
| |
| int pthread_mutex_lock(pthread_mutex_t *mutex); |
| |
| locks the mutex object referenced by 'mutex'. If the mutex is |
| already locked, the calling thread shall block until the mutex becomes |
| available. This operation returns with the mutex object referenced |
| by 'mutex' in the locked state with the calling thread as its owner. |
| </assertion> |
| |
| <assertion id="2" tag="ref:XSH6:33945:33945"> |
| Upon success, it returns 0. |
| </assertion> |
| |
| <assertion id="3" tag="ref:XSH6:33950:33965"> |
| Upon failure, it shall return: |
| -[EINVAL] The mutex was created with the protocol attribute |
| PTHREAD_PRIO_PROTECT and the calling thread's priority |
| is higher than the mutex's current priority calling. |
| It may fail if: |
| -[EINVAL] 'mutex' does not refer to an initialized mutex object |
| -[EDEADLK] The current thread already owns the mutex |
| It shall not return [EINTR]. |
| </assertion> |
| |
| <assertion id="4" tag="ref:XSH6:33950:33965"> |
| If the mutex type is PTHREAD_MUTEX_RECURSIVE, |
| the mutex shall maintain the concept of a lock count |
| </assertion> |
| |
| <assertion id="5" tag="ref:XSH6:33950:33965"> |
| If a signal is delivered to a thread waiting for a mutex, |
| when return from the signal handler the thread shall resume waiting. |
| </assertion> |
| </assertions> |