1<assertions> 2 <assertion id="1" tag="ref:XSH6:35397:35399 pt:CX pt:THR"> 3 pthread_sigmask( ) function is used to examine or change (or both) the calling thread's signal 4 mask, independent of the number of threads the process contains. The function shall be 5equivalent to sigprocmask( ), but with the ability to be used in a thread of a multi-threaded 6process. 7 </assertion> 8 <assertion id="2" tag="ref:XSH6:35400:35401 pt:CX"> 9 The sigprocmask( ) function is used to examine or change (or both) the signal mask of the calling 10thread of a single-threaded process. 11 </assertion> 12 <assertion id="3" tag="ref:XSH6:35402:35403 pt:CX pt:THR"> 13The argument set points to a set of signals to be used to change the currently blocked set, unless the 14argument is a null pointer. 15 </assertion> 16 <assertion id="4" tag="ref:XSH6:35406:35407 pt:CX pt:THR"> 17 The resulting set shall be the union of the current set and the signal set pointed to by set, if the value 18of the argument how is SIG_BLOCK. 19 </assertion> 20 <assertion id="5" tag="ref:XSH6:35408:35408 pt:CX pt:THR"> 21 The resulting set shall be the signal set pointed to by set, if the value of the argument how is SIG_SETMASK 22 </assertion> 23 <assertion id="6" tag="ref:XSH6:35409:35410 pt:CX pt:THR"> 24 The resulting set shall be the intersection of the current set and the complement of the signal set 25pointed to by set, if the value of the argument how is SIG_UNBLOCK 26 </assertion> 27 <assertion id="7" tag="ref:XSH6:35411:35412 pt:CX pt:THR"> 28 The previous mask shall be stored in the location pointed to by oset, if the argument oset is not a null 29pointer. 30 </assertion> 31 <assertion id="8" tag="ref:XSH6:35412:35414 pt:CX pt:THR"> 32 The value of the argument how is not significant and the process's signal mask shall be unchanged, and 33thus the call can be used to enquire about currently blocked signals, if the argument set is a null 34pointer. 35 </assertion> 36 <assertion id="9" tag="ref:XSH6:35415:35416 pt:CX pt:THR"> 37After the call to sigprocmask(), if there are any pending unblocked signals, at least one of those 38signals shall be delivered before the call to sigprocmask() returns. 39 </assertion> 40 <assertion id="10" tag="ref:XSH6:35417:35418 pt:CX pt:THR"> 41The system shall not allow the blocking of signals which cannot be ignored, and shall not cause an error 42to be indicated. 43 </assertion> 44 <assertion id="11" tag="ref:XSH6:35419:35421 pt:CX pt:THR"> 45If any of the SIGFPE, SIGILL, SIGSEGV, or SIGBUS signals are generated while they are blocked, and the 46signal was not generated by the kill(), sigqueue() or raise()functions, the result is undefined. 47 </assertion> 48 <assertion id="12" tag="ref:XSH6:35422:35422 pt:CX pt:THR"> 49 The thread's signal mask shall not be changed, if sigprocmask( ) fails. 50 </assertion> 51 <assertion id="13" tag="ref:XSH6:35423:35423 pt:CX"> 52In a multi-threaded process, the use of the sigprocmask( ) function is unspecified. 53 </assertion> 54 <assertion id="14" tag="ref:XSH6:35425:35426 pt:THR"> 55pthread_sigmask( ) shall return 0, Upon successful completion; otherwise, it shall return the corresponding 56error number. 57 </assertion> 58 <assertion id="15" tag="ref:XSH6:35427:35428 pt:CX pt:THR"> 59sigprocmask( ) shall return 0, Upon successful completion; otherwise, it shall return -1 60and errno shall be set to indicate the error, and the process' signal mask shall be unchanged. 61 </assertion> 62 <assertion id="16" tag="ref:XSH6:35430:35431 pt:THR"> 63 An errno value of [EINVAL] shall be returned and the pthreadsigmask() function shall fail, if the 64value of 65the how argument is not equal to one of the defined values. 66 </assertion> 67 <assertion id="17" tag="ref:XSH6:35430:35431 pt:CX pt:THR"> 68 An errno value of [EINVAL] shall be returned and the sigprocmask() function shall fail, if the value of 69the how argument is not equal to one of the defined values. 70 </assertion> 71 <assertion id="18" tag="ref:XSH6:35432:35432 pt:THR"> 72 An error code of [EINTR] shall not be returned by the pthread_sigmask( ) function. 73 </assertion> 74</assertions> 75