You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by co...@apache.org on 2014/12/19 23:24:21 UTC

svn commit: r1646895 - in /apr/apr/branches/1.6.x: CHANGES poll/unix/z_asio.c

Author: covener
Date: Fri Dec 19 22:24:21 2014
New Revision: 1646895

URL: http://svn.apache.org/r1646895
Log:
Merge r1646891 from trunk:

apr_pollset state fixes for z/OS

Submitted By: Pat Odonnell <patod us ibm com>
Committed By: covener



Modified:
    apr/apr/branches/1.6.x/CHANGES
    apr/apr/branches/1.6.x/poll/unix/z_asio.c   (contents, props changed)

Modified: apr/apr/branches/1.6.x/CHANGES
URL: http://svn.apache.org/viewvc/apr/apr/branches/1.6.x/CHANGES?rev=1646895&r1=1646894&r2=1646895&view=diff
==============================================================================
--- apr/apr/branches/1.6.x/CHANGES [utf-8] (original)
+++ apr/apr/branches/1.6.x/CHANGES [utf-8] Fri Dec 19 22:24:21 2014
@@ -1,6 +1,10 @@
                                                      -*- coding: utf-8 -*-
 Changes for APR 1.6.0
 
+  *) apr_pollset: On z/OS, threadsafe apr_pollset_poll() may return
+     "EDC8102I Operation would block" under load.
+     [Pat Odonnell <patod us.ibm.com>]
+
   *) On z/OS, apr_sockaddr_info_get() with family == APR_UNSPEC was not 
      returning IPv4 addresses if any IPv6 addresses were returned. 
      [Eric Covener]

Modified: apr/apr/branches/1.6.x/poll/unix/z_asio.c
URL: http://svn.apache.org/viewvc/apr/apr/branches/1.6.x/poll/unix/z_asio.c?rev=1646895&r1=1646894&r2=1646895&view=diff
==============================================================================
--- apr/apr/branches/1.6.x/poll/unix/z_asio.c (original)
+++ apr/apr/branches/1.6.x/poll/unix/z_asio.c Fri Dec 19 22:24:21 2014
@@ -379,6 +379,7 @@ static apr_status_t asio_pollset_add(apr
             APR_RING_REMOVE(elem, link);
             DBG1(3, "used recycled memory at %08p\n", elem);
             elem->state = ASIO_INIT;
+            elem->a.aio_cflags = 0;
         }
         else {
             elem = (asio_elem_t *) apr_pcalloc(pollset->pool, sizeof(asio_elem_t));
@@ -659,6 +660,7 @@ static apr_status_t asio_pollset_poll(ap
             if (ret == 1) {
                 DBG(4, "asyncio() completed inline\n");
                 /* it's ready now */
+                elem->state = ASIO_COMPLETE;
                 APR_RING_INSERT_TAIL(&(priv->ready_ring), elem, asio_elem_t,
                                      link);
             }

Propchange: apr/apr/branches/1.6.x/poll/unix/z_asio.c
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Dec 19 22:24:21 2014
@@ -1,4 +1,4 @@
 /apr/apr/branches/1.4.x/poll/unix/z_asio.c:1101301
 /apr/apr/branches/1.5.x/poll/unix/z_asio.c:1101302
-/apr/apr/trunk/poll/unix/z_asio.c:1561356
+/apr/apr/trunk/poll/unix/z_asio.c:1561356,1646891
 /apr/apr-util/branches/1.4.x/poll/unix/z_asio.c:1211219,1211223