summaryrefslogtreecommitdiff
path: root/open_issues/alarm_setitimer.mdwn
blob: 3255683c5067d899d0f129504ea9de490fd5efb6 (plain)
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
[[!meta copyright="Copyright © 2012 Free Software Foundation, Inc."]]

[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license
is included in the section entitled [[GNU Free Documentation
License|/fdl]]."]]"""]]

[[!meta title="alarm/setitimer"]]

[[!tag open_issue_glibc open_issue_hurd]]

`setitimer()`, called by `alarm()` when setting a new alarm, it is not able
to disable on its own the timer when the alarm is fired the first time.
On the other hand, manually invoking `alarm(0)` can cancel the running timer
for `SIGALRM`.

See also the attached file: on other OSes (e.g. Linux) it blocks waiting
for a signal, while on GNU/Hurd it gets a new alarm and exits.

[[alrm.c]]


# IRC, freenode, #hurd, 2012-07-29

    <braunr> our setitimer is bugged
    <braunr> it seems doesn't seem to leave a timer disarmed when the interval
      is set to 0
    <braunr> (which means a one shot timer is actually periodic ..)