| <assertions> |
| <assertion id="1" tag="ref:XSH6:6594:6595"> |
| clock_settime() sets the clock clock_id to the value specified |
| by tp. |
| </assertion> |
| <assertion id="2" tag="ref:XSH6:6595:6596"> |
| clock_settime() truncates time values that are between resolution multiples |
| to the smaller resolution multiple |
| </assertion> |
| <assertion id="3" tag="ref:XSH6:6597:6603"> |
| clock_settime() supports CLOCK_REALTIME |
| </assertion> |
| <assertion id="4" tag="ref:XSH6:6604:6609"> |
| If clock_settime() changes the time for CLOCK_REALTIME, then any absolute |
| timers will use the new time for expiration. If at this point, the timer |
| should have expired in the past, it will expire immediately (no error). |
| </assertion> |
| <assertion id="5" tag="ref:XSH6:6610:6614"> |
| clock_settime() does not affect _relative_ timers (either timers or |
| nanosleep() calls). These expire when the relative time interval elapses, |
| regardless of what the clock says. |
| </assertion> |
| <assertion id="6" tag="ref:XSH6:6615:6621 pt:MON"> |
| clock_settime() cannot set the monotonic clock CLOCK_MONOTONIC and will |
| fail if invoked with clock_id CLOCK_MONOTONIC |
| </assertion> |
| <assertion id="7" tag="ref:XSH6:6624:6628 pt:CS"> |
| If clock_settime() changes the time for CLOCK_REALTIME, then any threads |
| blocked on clock_nanosleep() for the CLOCK_REALTIME clock |
| will use the new time for expiration. If at this point, the timer |
| should have expired in the past, it will expire immediately (no error). |
| </assertion> |
| <assertion id="8" tag="ref:XSH6:6629:6631 pt:CS"> |
| clock_settime() does not affect clock_nanosleep() _relative_ timers. |
| These expire when the relative time interval elapses, |
| regardless of what the clock says. |
| </assertion> |
| <assertion id="9" tag="ref:XSH6:6633:6639 pt:CPT"> |
| If _POSIX_CPUTIME is defined, clock_settime() supports clock_ids obtained |
| via clock_getcpuclockid(). The value set is the amount of execution |
| time of the process associated with the clock. |
| </assertion> |
| <assertion id="10" tag="ref:XSH6:6635:6639 pt:CPT"> |
| If _POSIX_CPUTIME is defined, clock_settime() supports clock_id |
| CLOCK_PROCESS_CPUTIME_ID (= the CPU clock of the calling process). |
| The value set is the amount of execution time of the calling process. |
| </assertion> |
| <assertion id="11" tag="ref:XSH6:6639:6641 pt:CPT"> |
| If clock_settime() is used to change the value of a CPU-time clock, |
| sporadic server scheduling policy is unaffected. |
| </assertion> |
| <assertion id="12" tag="ref:XSH6:6642:6648 pt:TCT"> |
| If _POSIX_THREAD_CPUTIME is defined, clock_settime() supports clock_ids |
| obtained via pthread_getcpuclockid(). The value set is the amount of |
| execution time of the thread associated with the clock. |
| </assertion> |
| <assertion id="13" tag="ref:XSH6:6644:6648 pt:TCT"> |
| If _POSIX_THREAD_CPUTIME is defined, clock_settime() supports clock_id |
| CLOCK_THREAD_CPUTIME_ID (= the CPU clock of the calling thread). |
| The value set is the amount of execution time of the calling thread. |
| </assertion> |
| <assertion id="14" tag="ref:XSH6:6648:6650 pt:TCT"> |
| If clock_settime() is used to change the value of a CPU-time clock, |
| sporadic server scheduling policy is unaffected. |
| </assertion> |
| <assertion id="15" tag="ref:XSH6:6652:6652"> |
| clock_settime() returns 0 on success |
| </assertion> |
| <assertion id="16" tag="ref:XSH6:6652:6653"> |
| clock_settime() returns -1 on failure |
| </assertion> |
| <assertion id="17" tag="ref:XSH6:6656:6656"> |
| clock_settime() sets errno=EINVAL if clock_id does not specify a known |
| clock |
| </assertion> |
| <assertion id="18" tag="ref:XSH6:6658:6658"> |
| clock_settime() sets errno=EINVAL if tp is outside the valid range for |
| clock_id |
| </assertion> |
| <assertion id="19" tag="ref:XSH6:6659:6660"> |
| clock_settime() sets errno=EINVAL if tp has a nsec value below 0 or |
| above (or equal to) 1000 million |
| </assertion> |
| <assertion id="20" tag="ref:XSH6:6661:6661 pt:MON"> |
| clock_settime() sets errno=EINVAL if clock_id is CLOCK_MONOTONIC |
| </assertion> |
| <assertion id="21" tag="ref:XSH6:6663:6664"> |
| clock_settime() sets errno=EPERM if the calling process does not have |
| privileges to set clockid (MAY, not SHOULD). |
| </assertion> |
| </assertions> |