Home | History | Annotate | Download | only in timer_create
      1 <assertions>
      2   <assertion id="1" tag="ref:XSH6:46739:46741">
      3    timer_create() creates a timer, timerid, for clock, clockid
      4   </assertion>
      5   <assertion id="2" tag="ref:XSH6:46741:46742">
      6    timerid is unique within the process that called timer_create() until
      7    it is deleted
      8   </assertion>
      9   <assertion id="3" tag="ref:XSH6:46743:46743">
     10    timerid is in a "disarmed state" when it is created from timer_create()
     11    (i.e., The timer is not active until timer_settime() is called.)
     12   </assertion>
     13   <assertion id="4" tag="ref:XSH6:46745:46747">
     14    evp points to a sigevent structure that defines the notification that will
     15    occur when the timer expires
     16   </assertion>
     17   <assertion id="5" tag="ref:XSH6:46747:46750">
     18    If evp == NULL, it is the same as if evp.sigev_notify=SIGEV_SIGNAL and
     19    evp.sigev_signo="a default signal number" evp.sigev_value=timerid.
     20   </assertion>
     21   <assertion id="6" tag="ref:XSH6:46751:46752">
     22    clock_id = CLOCK_REALTIME must be supported by timer_create()
     23   </assertion>
     24   <assertion id="7" tag="ref:XSH6:46752:46753 pt:MON">
     25    clock_id = CLOCK_MONOTONIC is supported by timer_create() (with MON support)
     26   </assertion>
     27   <assertion id="8" tag="ref:XSH6:46754:46754">
     28    child processes do not inherit timers during fork()
     29   </assertion>
     30   <assertion id="9" tag="ref:XSH6:46754:46755">
     31    timers are disarmed and deleted by an exec()
     32   </assertion>
     33   <assertion id="10" tag="ref:XSH6:46756:46757 pt:CPT">
     34    If _POSIX_CPUTIME is defined, clock_id values = to the CPU-time
     35    clock of the process calling timer_create() are allowed
     36   </assertion>
     37   <assertion id="11" tag="ref:XSH6:46758:46759 pt:TCT">
     38    If _POSIX_THREAD_CPUTIME is defined, clock_id values = to the CPU-time
     39    clock of the thread calling timer_create() are allowed
     40   </assertion>
     41   <assertion id="12" tag="ref:XSH6:46760:46762 pt:CPT pt:TCT">
     42    If clock_id = the CPU-time clock of a process or thread that is _not_ the
     43    thread calling timer_create(), it is implementation-defined whether
     44    timer_create() will attempt to set the timer for that process/thread or
     45    just fail.
     46   </assertion>
     47   <assertion id="13" tag="ref:XSH6:46764:46765">
     48    timer_create() returns 0 on success and sets timerid to the correct timer
     49   </assertion>
     50   <assertion id="14" tag="ref:XSH6:46765:46766">
     51    timer_create() returns -1 on failure and timerid is undefined
     52   </assertion>
     53   <assertion id="15" tag="ref:XSH6:46769:46772">
     54    timer_create returns errno = EAGAIN if either:
     55    1) the system does not have enough signal queueing resources to
     56       honor the request, or
     57    2) creation of this timer would exceed the allowable timers that the
     58       calling process can create
     59   </assertion>
     60   <assertion id="16" tag="ref:XSH6:46773:46773">
     61    timer_create returns errno = EINVAL if clock_id is not a defined clock ID
     62   </assertion>
     63   <assertion id="17" tag="ref:XSH6:46774:46776 pt:CPT pt:TCT">
     64    timer_create returns errno = ENOTSUP if the implementation does _not_
     65    support sending a CPU-time clock ID for a different (not the calling)
     66    process/thread
     67   </assertion>
     68 </assertions>
     69