<assertions>
  <assertion id="1" tag="ref:XSH6:6713:6717 pt:CS">
   clock_nanosleep() causes the current thread to stop executing for
   the time interval (clocked by clock_id) in rqtp unless:
   - TIMER_ABSTIME is set in the flags argument
   - a signal whose action is to invoke a signal catching function is
     delivered to the current thread
   - the process is terminated
  </assertion>
  <assertion id="2" tag="ref:XSH6:6718:6722 pt:CS">
   If TIMER_ABSTIME is set in flags, then clock_nanosleep() uses
   absolute time for the suspension of execution.  That is, it stops for:
   - the absolute time specified by rqtp
   or until
   - a signal whose action is to invoke a signal catching function is
     delivered to the current thread
   - the process is terminated
  </assertion>
  <assertion id="3" tag="ref:XSH6:6722:6724 pt:CS">
   If TIMER_ABSTIME is set in flags, then if, when clock_nanosleep() is
   called, rqtp time value less than or equal to specified clock\'s time value,
   clock_nanosleep() returns immediately and the calling process is *not*
   suspended.
  </assertion>
  <assertion id="4" tag="ref:XSH6:6725:6730 pt:CS">
   For TIMER_ABSTIME _not_ set:
   Suspension time is always greater than or equal to the rqtp time interval.
   [May be greater b/c of rounding or scheduling, just never less than.]
   Unless clock_nanosleep() is interrupted by a signal.
  </assertion>
  <assertion id="5" tag="ref:XSH6:6730:6733 pt:CS">
   For TIMER_ABSTIME set:
   Syspension time is always at least until the corresponding clock
   reaches time rqtp.
   Unless clock_nanosleep() is interrupted by a signal.
  </assertion>
  <assertion id="6" tag="ref:XSH6:6734:6735 pt:CS">
   clock_nanosleep() does not affect the action/blockage of a signal.
  </assertion>
  <assertion id="7" tag="ref:XSH6:6736:6737 pt:CS">
   clock_nanosleep() fails if clock_id is for the CPU-time clock of
   the calling thread
  </assertion>
  <assertion id="8" tag="ref:XSH6:6740:6741 pt:CS">
   clock_nanosleep() returns 0 on success (i.e., the full time requested
   by rqtp has elapsed)
  </assertion>
  <assertion id="9" tag="ref:XSH6:6743:6747 pt:CS">
   For relative clock_nanosleep(), if clock_nanosleep() is
   interrupted by a signal and rmtp is not-NULL, rmtp contains the
   amount of time remaining.  [If rmtp is NULL, no time is returned.]
   -- Absolute timers have no effect on rmtp.
  </assertion>
  <assertion id="10" tag="ref:XSH6:6751:6751 pt:CS">
   clock_nanosleep sets errno=EINTR if it was interrupted by a signal
  </assertion>
  <assertion id="11" tag="ref:XSH6:6752:6753 pt:CS">
   clock_nanosleep sets errno=EINVAL if rqpt below 0 or above (or equal to)
   1,000 million
  </assertion>
  <assertion id="12" tag="ref:XSH6:6753:6754 pt:CS">
   clock_nanosleep sets errno=EINVAL if TIMER_ABSTIME was specified
   and rqpt is outside the range for clock_id
  </assertion>
  <assertion id="13" tag="ref:XSH6:6755:6756 pt:CS">
   clock_nanosleep sets errno=EINVAL if clock_id does not refer to a known
   clock or refers to the CPU-time clock of the calling thread
  </assertion>
  <assertion id="14" tag="ref:XSH6:6757:6758 pt:CS">
   clock_nanosleep sets errno=ENOTSUP if clock_id refers to a clock
   that clock_nanosleep does not support (ex. if CPU-time clock is not
   supported)
  </assertion>
  <assertion id="15" tag="ref:XSH6:6762:6764 pt:CS">
   clock_nanosleep() with CLOCK_REALTIME == nanosleep()
  </assertion>
</assertions>
