| <assertions> |
| <assertion id="1" tag="ref:XSH6:31990:31991"> |
| The function |
| |
| int pthread_cancel(pthread_t thread); |
| |
| sends a request that 'thread' shall be canceled. The target thread's |
| cancelability state and type determines when/if the cancelation takes |
| effect. |
| </assertion> |
| <assertion id="2" tag="ref:XSH6:31991:31994"> |
| When the cancelation request is honored, the cancelation cleanup handlers for |
| 'thread' are called. |
| |
| When the last cancelation cleanup handler returns, the thread-specific |
| data destructer functions will be called for 'thread'. |
| When the last destructer function returns, 'thread' then terminates. |
| |
| NOTE: Still trying to find a good way to test the second paragraph of |
| assertion #2. |
| </assertion> |
| <assertion id="3" tag="ref:XSH6:31995:31996"> |
| The cancelation processing in the target thread will run asynchronously |
| with respect to the calling thread returning from pthread_cancel(); |
| </assertion> |
| <assertion id="4" tag="ref:XSH6:31998:31998"> |
| If success, it returns a 0; |
| </assertion> |
| <assertion id="5" tag="ref:XSH6:32001:32004"> |
| It may return an error number if: |
| |
| -[ESRCH] No thread could be found corresponding to that thread ID |
| |
| It will not return [EINTR] |
| </assertion> |
| </assertions> |