]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Revert "aio: fix newp->running data race"
authorSamuel Thibault <samuel.thibault@ens-lyon.org>
Wed, 4 May 2016 13:51:19 +0000 (15:51 +0200)
committerSamuel Thibault <samuel.thibault@ens-lyon.org>
Wed, 4 May 2016 13:52:30 +0000 (15:52 +0200)
This reverts commit fd67a9cf7b733da082e4b6a5f25c19ea7921b4cd.

ChangeLog
sysdeps/pthread/aio_misc.c

index a4501a0cae33fb7cc26b577ccb9dedc5588711c7..30ab0e80754a8c6e0adfa0142715d8abcf244f3a 100644 (file)
--- 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]
index faf139d9011f2bdd3d649f8ec0088b8dff912559..f55570d23b5b39ed8976b2e320e1add701c98859 100644 (file)
@@ -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);