]> sourceware.org Git - glibc.git/commitdiff
nptl: handle EAGAIN with some futex operations gentoo/2.19
authorCarlos O'Donell <carlos@systemhalted.org>
Sun, 10 Aug 2014 14:01:43 +0000 (10:01 -0400)
committerMike Frysinger <vapier@gentoo.org>
Sun, 10 Aug 2014 14:01:43 +0000 (10:01 -0400)
nptl/sysdeps/pthread/aio_misc.h
nptl/sysdeps/pthread/gai_misc.h
sunrpc/clnt_udp.c

index ac3488c57e8a5d784e235a536b4a0049de650fce..ac3577106feb4d59e83835f99c818052c5eb2a28 100644 (file)
@@ -50,7 +50,7 @@
          {                                                                   \
            status = lll_futex_timed_wait (futexaddr, oldval, timeout,        \
                                           LLL_PRIVATE);                      \
-           if (status != -EWOULDBLOCK)                                       \
+           if (status != -EWOULDBLOCK && status != -EAGAIN)                  \
              break;                                                          \
                                                                              \
            oldval = *futexaddr;                                              \
@@ -65,7 +65,7 @@
        else if (status == -ETIMEDOUT)                                        \
          result = EAGAIN;                                                    \
        else                                                                  \
-         assert (status == 0 || status == -EWOULDBLOCK);                     \
+         assert (status == 0 || status == -EWOULDBLOCK || status == -EAGAIN);\
                                                                              \
        pthread_mutex_lock (&__aio_requests_mutex);                           \
       }                                                                              \
index 946275ed752d66dc5e73b6980cb0351bf8af9257..aa72c4af7cfd13c2e2725e8132c741e1e92d2fe8 100644 (file)
@@ -51,7 +51,7 @@
          {                                                                   \
            status = lll_futex_timed_wait (futexaddr, oldval, timeout,        \
                                           LLL_PRIVATE);                      \
-           if (status != -EWOULDBLOCK)                                       \
+           if (status != -EWOULDBLOCK && status != -EAGAIN)                  \
              break;                                                          \
                                                                              \
            oldval = *futexaddr;                                              \
@@ -66,7 +66,7 @@
        else if (status == -ETIMEDOUT)                                        \
          result = EAGAIN;                                                    \
        else                                                                  \
-         assert (status == 0 || status == -EWOULDBLOCK);                     \
+         assert (status == 0 || status == -EWOULDBLOCK || status == -EAGAIN);\
                                                                              \
        pthread_mutex_lock (&__gai_requests_mutex);                           \
       }                                                                              \
index 1b6a20b8266f67d84edee588734f575551725af7..41ac54b324a55a527c0a814d7bcf92f854c60d62 100644 (file)
@@ -463,7 +463,7 @@ send_again:
       while (inlen < 0 && errno == EINTR);
       if (inlen < 0)
        {
-         if (errno == EWOULDBLOCK)
+         if (errno == EWOULDBLOCK || errno == EAGAIN)
            continue;
          cu->cu_error.re_errno = errno;
          return (cu->cu_error.re_status = RPC_CANTRECV);
This page took 0.049097 seconds and 5 git commands to generate.