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