| <assertions> |
| <assertion id="1" tag="ref:XSH6:33528:33534"> |
| The function |
| int pthread_key_delete(pthread_key_t key); |
| |
| Shall delete a thread-specific data key previously returned by pthread_key_create. The |
| thread-specific data values specified data values associated with 'key' need not be NULL at |
| the time pthread_key_delete is called. It is the responsibility of the application to free |
| any application storage or perform any cleanup actions for data structures related to the |
| deleted key or associated thread-specific data in any threads; this cleanup can be done |
| either before or after pthread_key_delete is called. Any attempt to use 'key' following |
| the call to pthread_key_delete results in undefined behavior. |
| </assertion> |
| |
| <assertion id="2" tag="ref:XSH6:33535:33537"> |
| pthread_key_delete function shall be callable from within destructor functions. No |
| destructor functions shall be invoked by pthread_key_delete. Any destructor function |
| that may have been associated with 'key' shall no longer be called up thread exit. |
| </assertion> |
| |
| <assertion id="3" tag="ref:XSH6:33542:33544"> |
| If successful, it returns zero. It may fail if: |
| [EINVAL] - The 'key' value is invalid. |
| it shall not return [EINTR] |
| </assertion> |
| |
| </assertions> |