aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2016-05-04 15:51:19 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2016-05-04 15:52:30 +0200
commit04794f3e7e9a8f61519b7d8bb5ad864431d3e488 (patch)
tree9f0ab47ad237170eaa85f3c5bef1449eed3b1ce9
parent66355680f840f336eb83e7f46a873556a1bdedcc (diff)
downloadglibc-04794f3e7e9a8f61519b7d8bb5ad864431d3e488.zip
glibc-04794f3e7e9a8f61519b7d8bb5ad864431d3e488.tar.gz
glibc-04794f3e7e9a8f61519b7d8bb5ad864431d3e488.tar.bz2
Revert "aio: fix newp->running data race"
This reverts commit fd67a9cf7b733da082e4b6a5f25c19ea7921b4cd.
-rw-r--r--ChangeLog7
-rw-r--r--sysdeps/pthread/aio_misc.c8
2 files changed, 3 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index a4501a0..30ab0e8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,13 +2,6 @@
* malloc/malloc-internal.h: Adjust header file guard.
-2016-05-04 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/pthread/aio_misc.c (__aio_enqueue_request): Do not write
- `running` field of `newp` when a thread was started to process it,
- since that thread will not take `__aio_requests_mutex`, and the field
- already has the proper value actually.
-
2016-05-04 Florian Weimer <fweimer@redhat.com>
[BZ #19787]
diff --git a/sysdeps/pthread/aio_misc.c b/sysdeps/pthread/aio_misc.c
index faf139d..f55570d 100644
--- a/sysdeps/pthread/aio_misc.c
+++ b/sysdeps/pthread/aio_misc.c
@@ -453,11 +453,7 @@ __aio_enqueue_request (aiocb_union *aiocbp, int operation)
result = 0;
}
}
- else
- newp->running = running;
}
- else
- newp->running = running;
/* Enqueue the request in the run queue if it is not yet running. */
if (running == yes && result == 0)
@@ -470,7 +466,9 @@ __aio_enqueue_request (aiocb_union *aiocbp, int operation)
pthread_cond_signal (&__aio_new_request_notification);
}
- if (result != 0)
+ if (result == 0)
+ newp->running = running;
+ else
{
/* Something went wrong. */
__aio_free_request (newp);