am cb7e8c5e: libc: update alarm() implementation to return 0 on error.
Merge commit 'cb7e8c5ef3f5f60a848e469ed40610c8946fe7ac' into gingerbread-plus-aosp
* commit 'cb7e8c5ef3f5f60a848e469ed40610c8946fe7ac':
libc: update alarm() implementation to return 0 on error.
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 @@
- <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 @@
- <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 @@
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);