diff options
author | David 'Digit' Turner <digit@google.com> | 2010-07-08 17:19:07 -0700 |
---|---|---|
committer | David 'Digit' Turner <digit@google.com> | 2010-07-08 17:20:29 -0700 |
commit | cb7e8c5ef3f5f60a848e469ed40610c8946fe7ac (patch) | |
tree | 57f834d14915d4a63edf62aa0026676064baba8f | |
parent | ab8b54101eed0a4b92ebf8fa6994cd1b4f22d8f4 (diff) | |
download | bionic-cb7e8c5ef3f5f60a848e469ed40610c8946fe7ac.zip bionic-cb7e8c5ef3f5f60a848e469ed40610c8946fe7ac.tar.gz bionic-cb7e8c5ef3f5f60a848e469ed40610c8946fe7ac.tar.bz2 |
libc: update alarm() implementation to return 0 on error.
This matches the GLibc behaviour, and allows alarm(0xFFFFFFFF) to return 0.
Change-Id: I419aa71b27d6bb2015d15ba6b6112bf62eadcbb8
-rw-r--r-- | libc/docs/CHANGES.TXT | 5 | ||||
-rw-r--r-- | libc/unistd/alarm.c | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/libc/docs/CHANGES.TXT b/libc/docs/CHANGES.TXT index cbca6cb..96f25d3 100644 --- a/libc/docs/CHANGES.TXT +++ b/libc/docs/CHANGES.TXT @@ -27,6 +27,10 @@ Differences between current and Android 2.2: - <unistd.h>: add missing declaration for truncate(). The implementation was already here since Android 1.5. + modify implementation of alarm() to return 0 in case of error (i.e. + if a value larger than 0x7fffffff seconds is passed to it). This + makes the implementation compliant with the GLibc behaviour. + - <wchar.h>: small fixes to really support wchar_t in Bionic (not there yet). the size of wchar_t is still 32-bit (decided by the compiler) @@ -66,6 +70,7 @@ Differences between current and Android 2.2: - <sys/vfs.h>: fixed implementation of fstatfs() (also fixes fpathconf() which uses it). + ------------------------------------------------------------------------------- Differences between Android 2.2. and Android 2.1: diff --git a/libc/unistd/alarm.c b/libc/unistd/alarm.c index 01863a4..53edea9 100644 --- a/libc/unistd/alarm.c +++ b/libc/unistd/alarm.c @@ -51,7 +51,11 @@ alarm(secs) itp->it_value.tv_sec = secs; itp->it_value.tv_usec = 0; if (setitimer(ITIMER_REAL, itp, &oitv) < 0) +#if 1 /* BIONIC: Same behaviour than GLibc for errors */ + return 0; +#else return (-1); +#endif if (oitv.it_value.tv_usec) oitv.it_value.tv_sec++; return (oitv.it_value.tv_sec); |