aboutsummaryrefslogtreecommitdiff
path: root/rt/aio_error.c
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2021-06-22 09:50:27 +0200
committerFlorian Weimer <fweimer@redhat.com>2021-06-22 09:50:45 +0200
commitdaa3fc9bff55c1f8368a464ec802ab620901344e (patch)
tree14c3a5a951a84aeff9d554ab5a77c13a4ec29521 /rt/aio_error.c
parentae830b2d9f5238e1bee9820cd4d4df7f7b13ecff (diff)
downloadglibc-daa3fc9bff55c1f8368a464ec802ab620901344e.zip
glibc-daa3fc9bff55c1f8368a464ec802ab620901344e.tar.gz
glibc-daa3fc9bff55c1f8368a464ec802ab620901344e.tar.bz2
rt: Move generic implementation from sysdeps/pthread to rt
The pthread-based implementation is the generic one. Replacing the stubs makes it clear that they do not have to be adjusted for the libpthread move. Result of: git mv -f sysdeps/pthread/aio_misc.h sysdeps/generic/ git mv sysdeps/pthread/timer_routines.c sysdeps/htl/ git mv -f sysdeps/pthread/{aio,lio,timer}_*.c rt/ Followed by manual adjustment of the #include paths in sysdeps/unix/sysv/linux/wordsize-64, and a move of the version definitions formerly in sysdeps/pthread/Versions. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Diffstat (limited to 'rt/aio_error.c')
-rw-r--r--rt/aio_error.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/rt/aio_error.c b/rt/aio_error.c
index 730b64b..ed664ae 100644
--- a/rt/aio_error.c
+++ b/rt/aio_error.c
@@ -28,11 +28,21 @@
/* And undo the hack. */
#undef aio_error64
+#include <aio_misc.h>
+
int
aio_error (const struct aiocb *aiocbp)
{
- return aiocbp->__error_code;
+ int ret;
+
+ /* Acquire the mutex to make sure all operations for this request are
+ complete. */
+ pthread_mutex_lock(&__aio_requests_mutex);
+ ret = aiocbp->__error_code;
+ pthread_mutex_unlock(&__aio_requests_mutex);
+
+ return ret;
}
weak_alias (aio_error, aio_error64)