Some comments on your latest provided patch :

       if (!jk_resolv_pool) {
            if (apr_pool_create(&jk_resolv_pool, (apr_pool_t *)pool)
!= APR_SUCCESS) {
                JK_TRACE_EXIT(l);
                return JK_FALSE;
            }
        }
        /* We need to clear the pool reference, if the pool gets destroyed
                        * via its parent pool. */
        apr_pool_cleanup_register(jk_resolv_pool, &jk_resolv_pool,
jk_resolv_cleanup, jk_resolv_cleanup);
        apr_pool_clear(jk_resolv_pool);
        if (apr_sockaddr_info_get
            (&remote_sa, host, APR_UNSPEC, (apr_port_t) port, 0, jk_resolv_pool)
            != APR_SUCCESS) {
            JK_TRACE_EXIT(l);
            return JK_FALSE;
        }

Why not just add the cleanup register in pool create side ?

       if (!jk_resolv_pool) {
            if (apr_pool_create(&jk_resolv_pool, (apr_pool_t *)pool)
!= APR_SUCCESS) {
                JK_TRACE_EXIT(l);
                return JK_FALSE;
            }

        /* We need to clear the pool reference, if the pool gets destroyed
                        * via its parent pool. */
        apr_pool_cleanup_register(jk_resolv_pool, &jk_resolv_pool,
jk_resolv_cleanup, jk_resolv_cleanup);
        }

        apr_pool_clear(jk_resolv_pool);
        if (apr_sockaddr_info_get
            (&remote_sa, host, APR_UNSPEC, (apr_port_t) port, 0, jk_resolv_pool)
            != APR_SUCCESS) {
            JK_TRACE_EXIT(l);
            return JK_FALSE;
        }


Also what could happen if we get many threads calling jk_resolv at the
same time ?

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to