summaryrefslogtreecommitdiff
path: root/libc/sysdeps/pthread
diff options
context:
space:
mode:
authorjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2011-09-06 15:08:18 +0000
committerjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2011-09-06 15:08:18 +0000
commit098e6c37e3835dee6506593d88313502f35b0987 (patch)
treec3c2f4c56e6aa4646ddc31f3ebd3afa64435b425 /libc/sysdeps/pthread
parent10b7282e0adbdf46051663a61aff42b99f21e1b7 (diff)
downloadeglibc2-098e6c37e3835dee6506593d88313502f35b0987.tar.gz
Merge changes between r14661 and r15223 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@15224 7b3dc134-2b1b-0410-93df-9e9f96275f8d
Diffstat (limited to 'libc/sysdeps/pthread')
-rw-r--r--libc/sysdeps/pthread/aio_suspend.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/libc/sysdeps/pthread/aio_suspend.c b/libc/sysdeps/pthread/aio_suspend.c
index b85b16d10..99f3a80c5 100644
--- a/libc/sysdeps/pthread/aio_suspend.c
+++ b/libc/sysdeps/pthread/aio_suspend.c
@@ -92,6 +92,18 @@ cleanup (void *arg)
pthread_mutex_unlock (&__aio_requests_mutex);
}
+#ifdef DONT_NEED_AIO_MISC_COND
+static int
+__attribute__ ((noinline))
+do_aio_misc_wait(int *cntr, const struct timespec *timeout)
+{
+ int result = 0;
+
+ AIO_MISC_WAIT(result, *cntr, timeout, 1);
+
+ return result;
+}
+#endif
int
aio_suspend (list, nent, timeout)
@@ -169,7 +181,7 @@ aio_suspend (list, nent, timeout)
pthread_cleanup_push (cleanup, &clparam);
#ifdef DONT_NEED_AIO_MISC_COND
- AIO_MISC_WAIT (result, cntr, timeout, 1);
+ result = do_aio_misc_wait(&cntr, timeout);
#else
if (timeout == NULL)
result = pthread_cond_wait (&cond, &__aio_requests_mutex);